Ошибка шлюза с балансировкой нагрузки Nginx?
У меня есть три сервера, мой основной сервер, мой дополнительный сервер и мой балансировщик нагрузки. Я использую Nginx в качестве балансировщика нагрузки, но получаю ошибку шлюза.
На балансировщике нагрузки в моем файле конфигурации сайта Nginx у меня есть:
upstream backend {
server 1.1.1.1:80;
server 1.1.1.2:80;
}
В моем блоке сервера у меня есть:
location / {
proxy_pass http://backend;
}
В моем журнале ошибок nginx я получаю "преждевременно закрытое соединение в восходящем направлении при чтении заголовка ответа из восходящего потока"
Когда я перехожу к IP-адресам балансировщиков нагрузки, 1.1.1.3, я получаю ошибку шлюза. Есть ли способ это исправить?
1 ответ
Вам не хватает пары параметров
Ваш апстрим отсутствует keepalive
server 1.1.1.1:80;
server 1.1.1.2:80;
keepalive 64;
Попробуйте добавить это это
proxy_redirect off;
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;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_set_header Connection "";
proxy_http_version 1.1;
proxy_cache_key sfs$request_uri$scheme;
proxy_pass http://backend;