Проблема балансировки нагрузки Nginx - PullRequest
1 голос
/ 03 января 2012

Мы используем Nginx в качестве балансировщика нагрузки для нескольких узлов riak.Настройка работала хорошо в течение некоторого времени (несколько часов), прежде чем Nginx начал выдавать ошибки неверного шлюза 502.При проверке отдельные узлы вроде бы работали.Мы обнаружили, что проблема была в размере буфера nginx, следовательно, увеличил размер буфера до 16 КБ, он работал нормально еще один день, прежде чем мы начали получать ошибку 502 для всего.

Моя конфигурация Nginx выглядит следующим образом

upstream riak {
   server 127.0.0.1:8091 weight=3;
   server 127.0.0.1:8092;
   server 127.0.0.1:8093;    
   server 127.0.0.1:8094;

  }

  server {
    listen 8098;
    server_name 127.0.0.1:8098;
    location / {
      proxy_pass http://riak;
      proxy_buffer_size 16k;
      proxy_buffers 8 16k;
    }
  }

Любая помощь приветствуется, спасибо.

1 Ответ

0 голосов
/ 10 апреля 2012

Проверьте, исчерпаны ли у вас fd в окне nginx.Проверьте с помощью netstat, слишком ли много соединений в состоянии TIME_WAIT.Если это так, вам нужно уменьшить значение tcp_fin_timeout с 60 секунд по умолчанию до чего-то меньшего.

...