Установка и настройка фронтенда продукта
Вы можете выполнить установку фронтенда как на отдельном сервере, так и на сервере вместе с бэкендом продукта.
Фронтенд продукта включает два отдельных модуля:
-
osmax-webadmin— «Кабинет администратора»; -
osmax-app-shop— «Магазин приложений».
Каждый модуль устанавливается отдельно с помощью одноименного deb/rpm-пакета. Модули устанавливаются одинаково.
Установите пакеты osmax-webadmin и osmax-app-shop, выполнив команду:
sudo apt install ./<имя пакета>
Пример:
sudo apt install ./osmax-webadmin_1.9.0_all.deb sudo apt install ./osmax-app-shop_1.9.0_all.deb
sudo dnf install ./<имя пакета>
Пример команд:
sudo dnf install ./osmax-webadmin-1.9.0~465909.af37daaf-1.noarch.rpm sudo dnf install ./osmax-app-shop-1.9.0~465738.aeaf71cd-1.noarch.rpm
Для проверки статуса установки выполните команду:
apt list | grep "<имя модуля>"
Пример:
apt list | grep "osmax-webadmin" apt list | grep "osmax-app-shop"
sudo dnf list | grep "<имя модуля>"
Пример команд:
sudo dnf list | grep "osmax-webadmin" sudo dnf list | grep "osmax-app-shop"
В случае успешной установки система вернет ответ [установлен].
В случае неуспешной установки проверьте логи системы.
После установки пакетов файлы для веб-сервера будут помещены в каталоги:
-
/var/www/lcm-web-ui; -
/var/www/lcm-app-shop-ui.
Для корректной работы модулей настройте веб-сервер. Для этого создайте необходимые конфигурационные файлы и переопределите в них значения параметров.
В зависимости от используемого веб-сервера процедура настройки может незначительно отличаться, но конфигурационные файлы являются идентичными для каждого из модулей.
Ниже в качестве примера рассмотрена конфигурация веб-сервера для модуля osmax-webadmin.
Конфигурация веб-сервера (на примере Nginx)
Чтобы задать рабочую конфигурацию, выполните действия:
-
Создайте конфигурационный файл, выполнив команду:
sudo nano /etc/nginx/conf.d/lcm-web-ui.conf
Пример файла:
server { listen 80; listen [::]:80; server_name staging-osmax.terra.inno.tech osmax-web-ui.lcm.terra.inno.tech osmax-web-ui osmax-web-ui.local; root /var/www/lcm-web-ui; index index.html; error_log /var/log/nginx/error.log debug; access_log /var/log/nginx/access.log; location / { try_files $uri $uri/ /index.html; } location /api/provisioner { set $backend_uri http://127.0.0.1:8082; rewrite ^\/api/provisioner(\/.*)$ $1 break; proxy_pass $backend_uri; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } location /api { set $backend_uri http://127.0.0.1:8081; rewrite ^\/api(\/.*)$ $1 break; proxy_pass $backend_uri; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } } server { listen 443 ssl; listen [::]:443 ssl; server_name staging-osmax.terra.inno.tech osmax-web-ui.lcm.terra.inno.tech osmax-web-ui osmax-web-ui.local; root /var/www/lcm-web-ui; index index.html; ssl_certificate /etc/certs/TERRA_INNO_TECH_CRT; ssl_certificate_key /etc/certs/TERRA_INNO_TECH_KEY; error_log /var/log/nginx/error.log debug; access_log /var/log/nginx/access.log; location / { try_files $uri $uri/ /index.html; } location /api/provisioner { set $backend_uri http://127.0.0.1:8082; rewrite ^\/api/provisioner(\/.*)$ $1 break; proxy_pass $backend_uri; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } location /api { set $backend_uri http://127.0.0.1:8081; rewrite ^/api(/.*)$ $1 break; proxy_pass $backend_uri; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } }Где:
-
listen— настраивает прослушивание портов на сервере; -
server_name— доменное имя, которое будет обслуживаться сервером; -
root— указывает директорию, в которой находятся статические файлы, отображаемые при запросе корневой директории; -
index— задает стандартный файл, который будет отображаться при запросе корневой директории; -
ssl_certificate— указывает SSL-сертификат для обеспечения безопасного соединения; -
ssl_certificate_key— определяет путь к файлу приватного ключа SSL-сертификата; -
error_log— указывает файл логов для логирования ошибок; -
access_log— указывает файл логов для логирования ошибок доступа; -
location /— указывает веб-серверу на поиск запрашиваемых файлов в директорииroot; и если файл будет не найден, указывает на файлindex.html; -
location /api/provisioner— настраивает проксирование запросов к API-серверу модуляosmax-provisioner; -
location /api— настраивает проксирование запросов к API-серверу модуляosmax-core;При установке фронтенда на отдельный сервер, в параметре set $backend_uriукажите корректный адрес бэкенда.-
proxy_pass— директива, перенаправляющая запросы к/apiна указанный бэкенд; -
proxy_set_header— директива, устанавливающая необходимую информацию в заголовках запроса.
-
-
-
Для передачи данных по HTTP переопределите значения только в первом блоке
server; для передачи по HTTPS — также переопределите значения во втором блоке.-
В первом блоке
serverв полеserver_nameукажите имя домена. -
В первом блоке
serverв полеlocation /api/provisionerзадайте адрес обращения к бэкенду (osmax-provisioner). -
В первом блоке
serverв полеlocation /apiзадайте адрес обращения к бэкенду (osmax-core). -
(Опционально) во втором блоке
serverв полеserver_nameукажите имя домена. -
(Опционально) во втором блоке
serverв полеlocation /api/provisionerзадайте адрес обращения к бэкенду (osmax-provisioner). -
(Опционально) во втором блоке
serverв полеlocation /apiзадайте адрес обращения к бэкенду (osmax-core). -
(Опционально) в поле
ssl_certificateукажите SSL-сертификат для обеспечения безопасного соединения. -
(Опционально) в поле
ssl_certificate_keyзадайте путь к файлу приватного ключа SSL-сертификата.
-
-
Активируйте файл в конфигурации веб-сервера, создав для него символическую ссылку в каталоге
/etc/nginx/sites-enabled/:ln -s /etc/nginx/sites-available/lcm-web-ui.conf /etc/nginx/sites-enabled/
-
Перезапустите веб-сервер, выполнив команду:
systemctl restart nginx.service
-
Убедитесь, что веб-сервер успешно работает, выполнив команду:
systemctl status nginx.service
В случае успешного запуска система вернет ответ:
● nginx.service - A high performance web server and a reverse proxy server Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled) Active: active (running) since Fri 2024-02-09 16:21:31 MSK; 4s ago Docs: man:nginx(8) Process: 23739 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS) Process: 23740 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS) Main PID: 23741 (nginx) Tasks: 3 (limit: 4653) Memory: 2.2M CGroup: /system.slice/nginx.service ├─23741 nginx: master process /usr/sbin/nginx -g daemon on; master_process on; ├─23742 nginx: worker process └─23743 nginx: worker process фев 09 16:21:31 lr-441246-cm-1 systemd[1]: Starting A high performance web server and a reverse proxy server... фев 09 16:21:31 lr-441246-cm-1 systemd[1]: Started A high performance web server and a reverse proxy server.В качестве дополнительной простой проверки вы можете выполнить запрос посредством утилиты
curlна доменное имя, указанное в параметреserver_name:curl -I domain-of-your-lcm-web-ui.vpn.company.com HTTP/1.1 200 OK Server: nginx/1.22.1 Date: Fri, 09 Feb 2024 13:32:44 GMT Content-Type: text/html Content-Length: 551 Last-Modified: Tue, 06 Feb 2024 12:20:20 GMT Connection: keep-alive ETag: "65c22404-227" Accept-Ranges: bytes