lavezzi1
@lavezzi1

Loadbalancer приложений на nodejs через nginx залипает в Chrome, почему?

В докере помимо всего прочего подняты 2 ноды и nginx сервер в качестве loadbalancer.

upstream localhost {
server node1:3000;
server node2:3000;
}

server {
listen 80;
server_name localhost;
location / {
proxy_pass http://localhost;
proxy_set_header Host $host;
}
}


Везде работает отлично, сервера при обновлении меняются, кроме как в Chrome. Такое ощущение что какой то кеш мешает. То на 1ом сервере залипает, то на 2ом.

Подскажите в чем проблема.
  • Вопрос задан
  • 77 просмотров
Пригласить эксперта
Ответы на вопрос 1
@cobra-2k
localhost - это зарегистрированное служебное имя. В конфиге оно у вас обозначает ваш локальный хост сопоставимый 127.0.0.1 и одновременно пул серверов для балансировки. Соответственно у вас логическая ошибка.

Вероятнее ваш конфиг должен выглядеть примерно так:
http {
    upstream MyNodeApp {
        // ip_hash - лучше также установить, подробнее можно тут глянуть
        // https://nginx.org/en/docs/http/load_balancing.html
        ip_hash;
        server node1:3000;
        server node2:3000;
    }

    server {
        listen 80;
        // Если нужно просто отвечать на запрос с 80 порта, на любое имя, то server_name можно закомментировать
        server_name my-server-name.ru;

        location / {
            proxy_pass http://MyNodeApp;
            proxy_set_header Host $host;
            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;
        }
    }
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы