Ошибка шлюза с балансировкой нагрузки 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;
Другие вопросы по тегам