Настройка Nginx-сервера

Для корректной работы модулей продукта «Кабинет администратора» и «Магазин приложений» необходимо переопределить значения параметров по умолчанию в следующих конфигурационных файлах Nginx-сервера:

  • inno-lcm-webadmin — путь к файлу: /etc/nginx/sites-available/lcm-web-ui.conf;

  • inno-lcm-app-shop — путь к файлу: /etc/nginx/sites-available/lcm-app-shop-ui.conf.

Настройки являются идентичными для каждого из модулей, поэтому ниже рассмотрен вариант настройки на примере модуля inno-lcm-webadmin.

Пример конфигурационного файла с настройками по умолчанию
server {
    listen       80;
    listen       [::]:80;
    server_name  staging-lcm.terra.inno.tech lcm-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 {
        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-lcm.terra.inno.tech lcm-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 {
        set $backend_uri http://127.0.0.1:8081;
        #set $backend_uri http://172.28.15.145:5000;
        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 / — указывает Nginx на поиск запрашиваемых файлов в директории root; и если файл будет не найден, указывает на файл index.html.

  • location /api —  настраивает проксирование запросов к API-серверу;

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

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

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

Для передачи данных по 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-сертификата.

  7. Чтобы внесенные изменения вступили в силу, перезапустите Nginx, выполнив команду:

    sudo service nginx restart
Подробнее о работе с Nginx-сервером см. в официальной документации.