Развёртывание и настройка 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.
Нет комментариев