problema de tempo de conexão nginx em alguns IPs

2

Eu mudei recentemente meu servidor para nginx e php-fpm para me livrar do apache. Isso ajudou a melhorar as velocidades do meu site.

Tudo parece funcionar bem até que eu me deparei com esse problema, notei que o nginx continua lançando erros de tempo de conexão para apenas determinados IPs. Um dos IPs é o IP do meu escritório, temos um back-end que é acessado do nosso escritório até o final do dia.

Eu uso o supervisord para iniciar 3 processos php-fpm com workers, essa é a minha configuração típica do php-fpm

pm.max_children = 50
pm.start_servers = 20
pm.min_spare_servers = 5
pm.max_spare_servers = 35
pm.max_requests = 300

Desde que eu tenho um servidor com 4 núcleos e 2 GB de RAM esta é a minha configuração nginx

worker_processes  4;
worker_rlimit_nofile 8192;
events {
   worker_connections  1024;
   use epoll;
   multi_accept off;
}
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 55;
recursive_error_pages    on;
server_name_in_redirect off;
server_tokens           off;
client_header_timeout 3m;
client_body_timeout 3m;
send_timeout 3m;
connection_pool_size 256;
client_header_buffer_size 8k;
large_client_header_buffers 4 32k;
request_pool_size 4k;
output_buffers   4 32k;
postpone_output  1460;
proxy_buffer_size          32k;
proxy_buffers              4 32k;
proxy_busy_buffers_size    64k;
proxy_temp_file_write_size 64k;
fastcgi_connect_timeout 120;
fastcgi_send_timeout 120;
fastcgi_read_timeout 180;
fastcgi_buffer_size 128k;
fastcgi_buffers 4 256k;
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 256k;
fastcgi_intercept_errors on;
fastcgi_ignore_client_abort     off;

Onde estou errado com a configuração, tentei várias configurações, mas o problema ainda persiste.

Estes são os erros que continuo recebendo

2011/11/13 18:20:33 [error] 21583#0: *311683 upstream timed out (110: Connection timed   out) while reading response header from upstream, client: IP, server: tastykhana.in, request: "GET url HTTP/1.1", upstream: "fastcgi://unix:/var/run/php-fpm.socket:", host: "tastykhana.in", referrer: "url"
    
por sheldon 13.11.2011 / 14:16

1 resposta

1

"Upstream expirou" diz a você que o backend (no seu caso é php-fpm) não envia uma resposta a tempo. Então, se você aumentar o tempo limite do nginx - veja php-fpm. Talvez seja com núcleo? Ou cria uma consulta enorme para o banco de dados?

    
por 13.11.2011 / 18:22

Tags