Установка на VPS хостинг

Eonza - это обычный веб-сервер, который слушает определенный порт и имеет API. Таким образом, если у вас имеется VPS хостинг, то вы можете установить Eonza на сервер и управлять вашим хостингом из браузера. Рекомендуется дополнительно использовать NGINX или другой веб-сервер в качестве прокси-сервера. Рассмотрим пример установки Eonza на CentOS 64-bit с веб-сервером nginx и готовым доменным именем my-eonza-domain.org. Предположим, что на данном домене уже имеется веб-сайт, поэтому сделаем так, чтобы Eonza открывалась в браузере по адресу https://www.my-eonza-domain.org:[port].

Шаг 1. Установка Eonza

На сервере создайте директорию, скачайте и сохраните в неё дистрибутив программы для Linux. Например, сохраним программу в директорию /home/eonza/. Лучше сразу установить пароль для логина, для этого запустите программу с параметрами -install и -psw. В этом случае, Eonza создаст неообходимые файлы, установит пароль для логина и закончит работу.

1cd /home/eonza
2./eonza -install -psw=mypassword 

Шаг 2. Настройка Eonza

Выберите localhost порт для программы Eonza и внешний порт для прокси-сервера nginx. Откройте конфигурационный файл eonza.yaml в любом редакторе и укажите в разделе http следующие поля:

  • host - имя хоста
  • port - порт, который будет слушать программа.
  • open - укажите false, чтобы программа не пыталась открыть Eonza в браузере на сервере.
  • access - укажите host
  • jwtkey - укажите случайную строку для создания JWT ключей.

Таким образом, настройки могут быть примерно такими

1http:
2    host: www.my-eonza-domain.org
3    port: 5001
4    open: false
5    theme: default
6    access: host
7    jwtkey: my-secret-jwt-key

В целях безопасности, рекомендуется определить список "белых" ip-адресов и подсетей. В этом случае, все запросы с других ip-адресов будут игнорироваться. Вы можете указать подсети принадлежащие вашему провайдеру. Также, обязательно добавьте локальные подсети ::1/128 и 127.0.0.0/31. "Белый" список ip-адресов и подсетей указывается в разделе whiltelist. Например,

1whitelist:
2    - ::1/128
3    - 127.0.0.0/31
4    - 92.140.108.0/24
5    - 92.140.109.0/24

Так как каждый скрипт запускается как отдельный процесс и занимает свой порт, то укажите еще два параметра.

  • portshift - разность между портом nginx и реальным портом. Например, если указано -1000, то https://www.my-eonza-domain.org:4002 будет соответствовать localhost:5002.
  • cdn - укажите адрес Eonza для того, чтобы скрипты могли использовать уже загруженные в браузер js и html файлы.
1portshift: -1000
2cdn: https://www.my-eonza-domain.org:4001

Шаг 3. Создание systemd сервиса

Зарегистрируем программу Eonza в качестве сервиса. Для этого создадим файл eonza.service в директории /usr/lib/systemd/system. Ниже приведен самый простой вариант, хотя .service файл может иметь гораздо больше параметров.

1[Unit]
2Description=Eonza Service
3
4[Service]
5ExecStart=/home/eonza/eonza
6WorkingDirectory=/home/eonza
7
8[Install]
9WantedBy=multi-user.target

Запускаем и подключаем наш сервис. Eonza будет автоматически запускаться после перезагрузки системы.

1systemctl start eonza.service
2systemctl enable eonza.service

Если вы измените файл eonza.service, то необходимо выполнить systemctl daemon-reload для обновления настроек. Для получения статуса сервиса используйте systemctl status eonza.service или service eonza status.

Шаг 4. Настройка прокси-сервера

Использование nginx в качестве прокси-сервера, позволит подключить Eonza к существующему доменному имени по https протоколу. Предположим, что уже имеется веб-сайт https://www.my-eonza-domain.org с Let’s Encrypt сертификатом и мы хотим, чтобы Eonza открывалась по адресу https://www.my-eonza-domain.org:4001. Для этого в файл настроек /etc/nginx/conf.d/my-eonza-domain.org.conf добавьте следующие разделы:

 1map $server_port $port {
 2    "~^4(?P<1>[0-9]+)$" "5$1";
 3}
 4
 5server {
 6    listen 4001-4100 ssl;
 7    server_name www.my-eonza-domain.org;
 8    
 9    ssl_certificate /etc/letsencrypt/live/my-eonza-domain.org/fullchain.pem; 
10    ssl_certificate_key /etc/letsencrypt/live/my-eonza-domain.org/privkey.pem;
11
12    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
13    ssl_prefer_server_ciphers on;
14
15    ssl_dhparam /etc/ssl/certs/dhparam.pem;
16    ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA';
17    ssl_session_timeout 1d;
18    ssl_session_cache shared:SSL:50m;
19
20    ssl_stapling on;
21    ssl_stapling_verify on;
22    add_header Strict-Transport-Security max-age=15768000;
23
24    location = /ws {
25        proxy_pass http://127.0.0.1:$port/ws;
26        proxy_http_version 1.1;
27        proxy_set_header Upgrade $http_upgrade;
28        proxy_set_header Connection "Upgrade";
29        proxy_set_header Host $host;
30    }
31    
32    location / {
33        if ($http_origin ~ '^https://www.my-eonza-domain.org') {
34            add_header Access-Control-Allow-Origin "$http_origin";
35        }
36        access_log off;
37        proxy_pass http://127.0.0.1:$port;
38        proxy_set_header Host $host;
39        proxy_set_header X-Real-IP $remote_addr;
40        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
41        proxy_redirect off;
42    }
43}

Эти настройки дают указание nginx слушать все порты с 4001 до 4100 и перенаправлять запросы на соответствующие порты 5001-5100 на localhost. Следует заметить, что старые версии nginx не поддерживают запись listen 4001-4100 ssl. В этом случае обновитесь до последней стабильной версии или создавайте отдельные разделы для нескольких портов. Сохраните файл настроек и перезапустите nginx (service nginx restart). Укажите в браузере https://www.my-eonza-domain.org:4001 и если всё было настроено правильно, то вы увидите страницу логина программы Eonza.

Онлайн-демо
Скачать Документация Скрипты Pro версия
Русский
English