Nginx e tempo limite de solicitação de passageiro (código de status nginx 499)

1

AVISO LEGAL: Eu li inúmeros posts aqui, no stackoverflow e em outras páginas e eu não consegui chegar a uma solução, então espero que isso ajude.

Estamos executando um aplicativo Rails no Passenger junto com o nginx e o HAProxy.

Passageiro: 4.0.7 Nginx: 1.4.1

O aplicativo está funcionando bem, mas, de tempos em tempos, as solicitações demoram muito para serem concluídas:

# nginx access.log    x.x.x.x - - [19 / Mar / 2015: 01: 07: 19 +0100] "GET / HTTP / 1.0" 499 0 "-" "radar de exploração / 2.0"

A requisição leva muito tempo para terminar, nginx retorna um 499 e o HAProxy converte isso em um 504. Após cerca de 30 minutos, o servidor volta ao normal, mas o erro continua reaparecendo.

Tenho certeza que não tem nada a ver com o HAProxy como um curl para localhost na máquina também retorna um tempo limite.

Não há nada de especial acontecendo no servidor (de acordo com o uso da CPU de 4 núcleos nunca é acima de 10% e dos 8GB sobre apenas 1 GB é usado, o loadavg está abaixo de 0.1 o tempo todo).

Eu configurei o ulimit para 65535.

O arquivo de configuração para o nginx é:

    user  www-data www-data;
    worker_processes  1;
    worker_rlimit_nofile 20000;

    events {
        worker_connections  768;
    }

    http {
        passenger_root /opt/passenger/passenger-4.0.7;
        passenger_ruby /usr/bin/ruby1.8;

        include       mime.types;
        default_type  application/octet-stream;

        sendfile on;
        tcp_nopush on;
        tcp_nodelay on;
        keepalive_timeout 65;
        types_hash_max_size 2048;

        # Virtual Hosts
        include /opt/nginx/conf/sites-enabled/*;
    }

A localização da fusão no nginx é:

server {
  charset utf-8;
  listen 3101;

  root /srv/ruby/code/current/public;

  passenger_enabled on;
  passenger_base_uri /;


  passenger_ruby /home/code/.rbenv/versions/1.9.3-p448/bin/ruby;

  passenger_min_instances 3;

  passenger_show_version_in_header off;
  passenger_friendly_error_pages off;
}

Eu brinquei com vários parâmetros (worker_processes, worker_connections, worker_rlimit_nofile) mas nada ajudou.

Mais alguma sugestão?

    
por leifg 19.03.2015 / 01:24

0 respostas