Установка и настройка фронтенда продукта

Вы можете выполнить установку фронтенда как на отдельном сервере, так и на сервере вместе с бэкендом продукта.

Фронтенд продукта включает два отдельных модуля:

  • inno-lcm-webadmin — «Кабинет администратора»;

  • inno-lcm-app-shop — «Магазин приложений».

Каждый модуль устанавливается отдельно с помощью одноименного deb-пакета. Модули устанавливаются одинаково.

Установите пакеты inno-lcm-webadmin и inno-lcm-app-shop, выполнив команду:

sudo apt install ./<имя пакета>

Пример:

sudo apt install ./inno-lcm-webadmin_1.3.3-1_all.deb
sudo apt install ./inno-lcm-app-shop_1.2.0-1_all.deb

Для проверки статуса установки выполните команду:

apt list | grep "<имя модуля>"

Пример:

apt list | grep "inno-lcm-webadmin"
apt list | grep "inno-lcm-app-shop"

В случае успешной установки система вернет ответ:

inno-lcm-webadmin/1.7_x86-64,now 1.3.5 all [установлен]

В случае неуспешной установки проверьте логи системы.

После установки deb-пакетов файлы для веб-сервера будут помещены в каталоги:

  • /var/www/lcm-web-ui;

  • /var/www/lcm-app-shop-ui.

Для корректной работы модулей настройте веб-сервер. Для этого создайте необходимые конфигурационные файлы и переопределите в них значения параметров.

В зависимости от используемого веб-сервера процедура настройки может незначительно отличаться, но конфигурационные файлы являются идентичными для каждого из модулей.

Ниже в качестве примера рассмотрена конфигурация веб-сервера для модуля inno-lcm-webadmin.

Конфигурация веб-сервера (на примере Nginx)

Чтобы задать рабочую конфигурацию, выполните действия:

  1. Создайте конфигурационный файл, выполнив команду:

    sudo nano /etc/nginx/conf.d/lcm-web-ui.conf

    Пример файла:

    server {
        listen       80;
        listen       [::]:80;
        server_name  domain-of-your-lcm-web-ui.vpn.company.com;
        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 {
            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 domain-of-your-lcm-web-ui.vpn.company.com;
        root /var/www/lcm-web-ui;
        index index.html;
    
        ssl_certificate /etc/certs/MY_CRT;
        ssl_certificate_key /etc/certs/MY_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 {
            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 —  настраивает проксирование запросов к API-серверу;

      • proxy_pass — директива, перенаправляющая запросы к /api на указанный бэкенд;

      • proxy_set_header — директива, устанавливающая необходимую информацию в заголовках запроса.

  2. Для передачи данных по HTTP переопределите значения только в первом блоке server; для передачи по HTTPS — также переопределите значения во втором блоке.

    1. В первом блоке server в поле server_name укажите имя домена.

    2. В первом блоке server в поле location /api задайте адрес обращения к бэкенду.

    3. (Опционально) во втором блоке server в поле server_name укажите имя домена.

    4. (Опционально) во втором блоке server в поле location /api задайте адрес обращения к бэкенду.

    5. (Опционально) в поле ssl_certificate укажите SSL-сертификат для обеспечения безопасного соединения.

    6. (Опционально) в поле ssl_certificate_key задайте путь к файлу приватного ключа SSL-сертификата.

  3. Активируйте файл в конфигурации веб-сервера, создав для него символическую ссылку в каталоге /etc/nginx/sites-enabled/:

    ln -s /etc/nginx/sites-available/lcm-web-ui.conf /etc/nginx/sites-enabled/
  4. Перезапустите веб-сервер, выполнив команду:

    systemctl restart nginx.service
  5. Убедитесь, что веб-сервер успешно работает, выполнив команду:

    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