Развёртывание и настройка nginx

После установки linux следует отключить cистему безопасности SELinux.

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

semanage permissive -a httpd_t

Информацию о настройках безопасности nginx можно найти здесь: https://disnetern.ru/nginx-server-configure-and-protect/

Если после настройки прокси в nginx.conf  location … { proxy_pass домино_web_сервер} получаем ошибку 502 Bad Gateway, а в логах nginx видим (13: Permission denied) while connecting to upstream, то нужно разрешить в SELinux upstream http соединения:

setsebool -P httpd_can_network_connect 1

Для того, чтобы при включённом SELinux увеличить число файлов на рабочий процесс (worker_rlimit_nofile) нужно разрешить эту операцию:

setsebool -P httpd_setrlimit 1

В настройках /etc/nginx/nginx.conf указывается:

Контекст main

# Увеличиваем общее число файлов для рабочих процессов. Так как мы работаем
# в режиме proxy, то минимум число входящих соединений х2 + резерв
worker_rlimit_nofile 65535;

events {
   # Увеличиваем число соединений на рабочий процесс
   worker_connections 4096;
   # Включаем возможность одновременного приема множества подключений
   multi_accept on;
}

Контекст http

# Включаем буферизацию логов доступа

# В продуктиве логи доступа лучше вообще отключить
access_log … buffer=32k flush=10s;

# Пул web- серверов Домино для обработки уведомлений СМ по заказам (хук)
upstream SberMarketOrdersHook {
   server <ip web- сервера Домино>:8081;
   server <ip web- сервера Домино>:8082;
   server <ip web- сервера Домино>:8083;
   server <ip web- сервера Домино>:8094;
}

# Пул web- серверов Домино для реализации процесса сборки заказов (api)
upstream SberMarketOrdersApi {
   server <ip web- сервера Домино>:8091;
   server <ip web- сервера Домино>:8092;
   server <ip web- сервера Домино>:8093;
   server <ip web- сервера Домино>:8094;
}

Контекст server

# Локации для перенаправления запросов
location /sbermarket/orders/hook/

   # Проксируем запросы на пул SberMarketOrdersHook по методу round-robin
   proxy_pass http://SberMarketOrdersHook;

   # Ставим ограничение по ip СМ (не применять на тестовых конфигурациях)

   allow 84.201.148.122;

   allow 178.154.232.168;

   allow 51.250.5.205;

   deny all;
}

location /sbermarket/orders/api/

   # Проксируем запросы на пул SberMarketOrdersApi по методу round-robin
   proxy_pass http://SberMarketOrdersApi;
}

Обязательно на сервере nginx следует отключить протокол http и настроить протокол https.