Установка на 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.