sudo systemctl status nginxps aux | grep nginxsudo nginx -s reloadhttp {
upstream backend_servers {
# Список бэкенд-серверов
server 192.168.1.101:8080 weight=5;
server 192.168.1.102:8080 weight=5;
server 192.168.1.103:8080 backup; # Резервный сервер
# Директива для активных проверок работоспособности
# В стандартной версии NGINX эта функциональность обычно требует дополнительного модуля
# или NGINX Plus. В NGINX Ingress Controller она встроена.
# Пример для NGINX Plus/Ingress Controller:
zone upstream_api_zone 64k; # Общая зона памяти для синхронизации
# Активный health check
# Проверка происходит каждые 5 секунд (interval=5s)
# Если 2 последовательные проверки завершатся неудачей (fails=2), сервер помечается как неработоспособный
# Тайм-аут для проверки - 1 секунда (timeout=1s)
# Отправляется GET-запрос на URI /health
check interval=5s rises=2 falls=2 timeout=1s type=http;
check_http_send "HEAD /health HTTP/1.0\r\nHost: example.com\r\n\r\n";
check_http_expect_alive http_2xx http_3xx;
}
server {
listen 80;
server_name api.example.com;
location / {
# Проксирование запросов к группе серверов
proxy_pass http://backend_servers;
# Настройка пассивных проверок (доступна в стандартной версии NGINX):
# Если 3 запроса к серверу завершатся с ошибкой (fail_timeout=10s),
# сервер будет считаться неработоспособным в течение 10 секунд.
proxy_next_upstream error timeout http_500 http_503;
# Более строгая пассивная проверка
# server 192.168.1.101:8080 max_fails=3 fail_timeout=30s;
}
}
}