WebApps платформата е гъвкава система за управление на процеси, работещи във фонов режим. Тя позволява стартирането и използването на уеб приложения, които работят като сървъри със собствена мрежа, във фонов режим на хостинг акаунта. Такива уеб приложения обикновено изискват директна обработка на заявки.

Има много приложения, които може да имат подобни изисквания. Например Node.js приложенията обикновено изискват собствен уеб сървър за обработка на входящи заявки, както и повечето уеб приложения, писани на Python.

WebApps платформата не е ограничена за използването само на Node.js или Python приложения. Тя поддържа всякакви приложения, които трябва да обработват мрежови заявки. Например следният код показва прост уеб сървър, които се настройва само с два реда:

#!/bin/sh
response="${2:-"OK"}"
while { echo -ne "HTTP/1.1 200 OK\r\nContent-Length: ${#response}\r\n\r\n$response"; } | nc -l -p "$1"; do printf "\n"; done

В тази статия ще покажем как да създадете WebApps проект, който да подкара този уеб сървър.

Важно: Показаният уеб сървър не е предназначен за работна среда, така че съветваме да не го използвате. Той е даден като пример за демонстрация на възможностите на WebApps платформата.

Подготовка

За да използвате уеб приложения, трябва да проверите и настроите Вашия акаунт за следните неща:

  • Трябва да имате раздел "WebApps" във Вашия хостинг Контролен панел. Ако нямате раздел "WebApps" във Вашия Контролен панел, тогава инструкциите в тази статия не са валидни за Вашия акаунт и сървър. Можете да се свържете с нас за повече информация и съдействие.

  • "SSH достъп" и "Мрежови инструменти" трябва да са активирани за Вашия акаунт през раздел "SSH Достъп" на Контролния панел.

Създаване на уеб сървъра

Влезте в акаунта си чрез SSH, за да създадете и настроите приложението.

За създаване на директория, която да съхранява файловете на проекта, използвайте тази команда:

webapps_project="shell_web_server_demo"
webapps_project_dir="/home/$USER/private/$webapps_project"
mkdir -pv "$webapps_project_dir/sureapp"

Използвайте следната команда, за да създадете файл с име "webserver.sh", съдържащ кода за примерния уеб сървър:

cat <<WEBSERVER_SH > "$webapps_project_dir/webserver.sh"
#!/bin/sh
response="\${2:-"OK"}"
while { echo -ne "HTTP/1.1 200 OK\r\nContent-Length: \${#response}\r\n\r\n\$response"; } | nc -l -p "\$1"; do printf "\n"; done
WEBSERVER_SH
chmod 0700 "$webapps_project_dir/webserver.sh"

Създаване на WebApps проект

Има два начина за създаване на WebApps проект - чрез раздел "WebApps" на Контролния панел или чрез "sureapp" CLI инструмента чрез SSH.

Използване на раздел "WebApps" на Контролния панел

Създайте ново уеб приложение чрез раздел "WebApps" във Вашия Контролен панел, използвайки следните данни:

  • "Платформа" - изберете "Custom".
  • "Име" - въведете желаното от Вас име за уеб приложението (напр. "shell_web_server_demo").
  • "Домейн", "Поддомейн" и "Уеб път за достъп" - изберете адреса, на който желаете уеб приложението да бъде достъпно (напр. "example.com" за домейн, "www" за поддомейн и "/" за уеб път за достъп ще направи уеб приложението достъпно на "www.example.com/"). Важно е да се спомене, че уеб пътят за достъп не е необходимо да съществува на акаунта, защото той се генерира автоматично от платформата за уеб приложения.
  • "Порт" - портът на уеб приложението се дава служебно и не подлежи на избор. След създаване на уеб приложението можете да видите назначения порт от платформата в списка с уеб приложения.
  • "Директория на приложението" - директорията, в която се намират файловете на уеб приложението. Тук трябва да попълните името на директорията, която сте създали в първата стъпка (напр. "/private/shell_web_server_demo/sureapp").

Създаване на WebApps проект

Платформата вече ще е запазила определен порт за проекта Ви, който можете да видите в колоната "Порт" в списъка с приложения. Ще използваме този порт в стартовата команда на проекта. За целта кликнете на бутона с иконка на молив (edit.gif) до Вашия проект ("shell_web_server_demo").

Стартовата команда трябва да изглежда по този начин, като в нея трябва да замените "example" с потребителското име на Вашия хостинг акаунт и "6086" с порта на Вашия проект:

/home/example/private/shell_web_server_demo/webserver.sh 6086 'Hello World'

Натиснете бутона "Промени", за да запазите промените.

Използване на "sureapp" CLI инструмента чрез SSH

Ако предпочитате да използвате командния ред за управление на Вашия проект, тогава "sureapp" е инструментът за Вас.

За създаване на проекта използвайте следната команда:

sureapp project create \
    --engine "custom" \
    --engine-version "-" \
    --release-dir "$webapps_project_dir/sureapp" \
    "$webapps_project"
sleep 10  # Some time is needed for the project to be saved

Със следната команда се настройва използването на TCP порта, който е запазен за проекта от WebApps платформата:

webapps_project_port="$(sureapp project list | grep "$webapps_project" | awk '{print $5}')"

sureapp project modify \
    --start-cmd "$webapps_project_dir/webserver.sh '$webapps_project_port' 'Hello World'" \
    "$webapps_project"

Последната стъпка е да настроите адреса, на който да е достъпен проектът. Можете да направите това чрез раздел "WebApps" на хостинг Контролния панел, като кликнете на бутона с иконка на молив (edit.gif) до Вашия проект ("shell_web_server_demo"), използвайки полетата "Домейн", "Поддомейн" и "Уеб път за достъп".

Промяна на WebApps проект

Натиснете бутона "Промени", за да запазите промените.

Стартиране на WebApps проект

Последно трябва да стартирате проекта, като натиснете бутона "Включи", който е с иконка на червен кръг (Enable app).


Стартиране на WebApps проект

Вашият нов уеб сървър ще се стартира и поддържа автоматично от WebApps платформата.

HTTPS криптиране

Важно е да споменем, че криптирането на връзката се извършва автоматично от WebApps платформата. Тоест Вашия WebApps проект ще работи по HTTPS, дори ако самото уеб приложение няма поддръжка за HTTPS, какъвто е случая с дадения за пример уеб сървър. Това се случва автоматично за всеки проект.

Не е задължително да активирате връзките по HTTPS за Вашето приложение, ако то ги поддържа. Връзката между WebApps платформата и Вашия проект се осъществява локално и криптирано, така че връзките между Вашите посетители и WebApps платформата, стояща пред Вашето приложение, ще са криптирани от нашите сървъри.