Solicitações de execução longa bloqueiam todas as solicitações subsequentes

1

Por alguma razão, o nginx não está aceitando novas solicitações sempre que uma solicitação lenta está sendo manipulada. Um teste simples é ter um script com sleep() e chamar o script de diferentes navegadores / dispositivos.

O primeiro pedido é aceito e o segundo é aceito, sendo aceito apenas quando o primeiro pedido é concluído. Existe uma maneira de contornar isso?

nginx.conf

user                                nobody nobody;
worker_processes                    1;
error_log                           /var/log/nginx-error.log notice;

events {
  worker_connections              1024;
}

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

  # General settings
  index                           index.html index.php;
  sendfile                        on;
  server_tokens                   off;
  client_max_body_size            10M;

  # TCP options
  tcp_nodelay                   on;
  tcp_nopush                    on;

  # NginxHttpGzipModule
  gzip                            on;
  gzip_buffers                    16 8k;
  gzip_comp_level                 5;
  gzip_disable                    "MSIE [1-6].(?!.*SV1)";
  gzip_http_version               1.0;
  gzip_min_length                 0;
  gzip_proxied                    any;
  gzip_types                      text/plain text/css text/xml text/javascript application/x-javascript application/xml application/xml+rss;
  gzip_vary                       on;

  include /usr/local/nginx/sites/*.conf;
}
    
por xidew 13.08.2012 / 23:08

1 resposta

1

Parece que o meu problema foi devido às configurações do php-fpm pm. *. A razão pela qual as solicitações não foram tratadas pelo nginx é porque não havia nenhum processo php-fpm ocioso para processar o pedido. Tecnicamente, o nginx aceitou o pedido, mas estava esperando por um processo php-fpm livre.

    
por 21.08.2012 / 13:21

Tags