# Установка и настройка WEB сервера

Настройка веб сервера. Веб сервер можно использовать любой, мы рекомендуем nginx и на его примере пойдет дальнейшее описание.

1. Скачайте и распакуйте nginx-1.19.0.zip (opens new window) в отдельную папку, например C:\nginx

2. Для установки nginx в качестве службы, скачайте Windows Service Wrapper (opens new window) в папку с распакованым nginx и переименуйте в nginx_svc.exe

3. Тут же создайте nginx_svc.xml по шаблону ниже, исправив пути до папки c nginx на актуальные.

<service>
    <id>nginx</id>
    <name>nginx</name>
    <description>HTTP-Server nginx</description>
    <executable>c:\nginx\nginx.exe</executable>
    <logpath>c:\nginx\logs</logpath>
    <logmode>roll</logmode>
    <depend></depend>
    <startargument>-p</startargument>
    <startargument>c:\nginx</startargument>
    <stopargument>-p</stopargument>
    <stopargument>c:\nginx</stopargument>
    <stopargument>-s</stopargument>
    <stopargument>stop</stopargument>
</service>

4. Установите службу веб сервера, для этого запуститите nginx_svc.exe с ключом install из командной строки. Пример: C:\nginx\nginx_svc.exe install - Откройте оснастку управления службами ОС (services.msc), найдите там службу nginx и двойным щелчком откройте ее. - На закладке «Общие» установите тип запуска службы «Автоматически(Авто)».

image

5. Откройте файл C:\nginx\conf\nginx.conf и отредактируйте параметр - server_name - имя, по которому клиенты будут заходить на веб интерфейс программы, в простом варианте – это имя сервера, например server_name stack-srv;

- ниже будет конструкция:  
	location / {
		root   html;
		index  index.html index.htm;
	}

В ней нужно нужно изменить параметр root, указав каталог stack-front, который по умолчанию в каталоге программы, например: root C:\Stack\stack-front;

Сразу после предыдущей конструкции нужно добавить еще несколько вида:

	location /<имя_задачи> {
		root <каталог stack-fron>\<имя_задачи>;
		index index.html index.htm;
            		if (!-e $request_filename){ rewrite ^(.*)$ /index.html break; }
	}

Тут меняются первая и вторая строка.

  • В первой после «/» указывается имя задачи, по аналогии с именами из файла deploy.bat, например location /fl {

  • Во второй указывается путь до stack-front и такое же имя задачи, например root C:\Stack\stack-front\fl;

Таких конструкций нужно добавить для каждой используемой задачи.

Тут же добавьте реверс прокси на шлюз stackgateway:

 location /stackgateway {
          proxy_pass http://<адрес_сервера>:<порт>/stackgateway;
          proxy_set_header Host $host;
          proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
          proxy_set_header X-Real-IP $remote_addr;
      }

<адрес_сервера> - ip адрес или доменное имя сервера, на котором развернут шлюз stackgateway;

<порт> - порт на который настроен шлюз stackgateway.

Пример настроек, описанных выше:

image

Важно!

Обратите внимание! В случае работы пользователей с программным комплексом СТЕК не только в локальной сети компании, но и через общедоступную сеть интернет, для защиты канала необходимо настроить подключение по протоколу HTTPS. Для этого у web-сервера должно быть зарегистрированное доменное имя и на данное имя выпущены SSL сертификаты.

Для работы по протоколу HTTPS полученные SSL сертификаты разместите в каталоге с установленным nginx, например C:\nginx\ssl, после чего внесите следующие изменения в файл конфигурации C:\nginx\conf\nginx.conf:

  • на прослушиваемом порту добавьте после пробела запись о шифровании ssl, порт для HTTPS по умолчанию 443 (можно указать другой, в таком случае при переходе по доменному имени в адресе нужно дописывать порт подключения);

  • имя сервера измените на зарегистрированное доменное имя, например, stack-srv.ru;

  • добавтьте строки с указанием пути, к файлам ssl сертификатов и ключа, например:

     ssl_certificate C:/nginx/SSL/stack-srv.ru.crt;
     ssl_certificate_key C:/nginx/SSL/stack-srv.ru.key;
    

image

Примечание.

При работе в LAN компании без SSL шифрования, по протоколу HTTP, во избежание запроса повторной авторизации пользователя по истечении времени протуханиия accessToken, можно в файле env.json (находится в каталоге с фронтом) прописать переменную "NO_SSL_AUTH": 1, при этом следует помнить, что работа без ssl и без ограничения времени действия accessToken небезопасно.

image

6. Сохраните файл конфигурации и запустите службу nginx. Если служба не запускается, ошибки можно посмотреть в <каталог nginx>\logs\error.log

7. Откройте браузер и перейдите по адресу http://<имя сервера приложений>, например http://stack-srv. Залогиньтесь в программу под пользователем SA и убедитесь что все работает. На этом стандартная установка закончена.