Tente aumentar o tvice worker_connection. Ou se você tiver mais de um núcleo - aumente o worker_processes para o número de núcleos.
Esta é a minha primeira pergunta! Poucos dias atrás eu descobri que algo deu errado com o nginx: domínios A-C estão ok, outros timeout. Mais tarde: outros domínios estão ok e primeiro tempo limite; ou cada domínio funciona bem. Se eu reiniciar o nginx - nada muda. Depois de reiniciar tudo funciona bem.
Talvez o motivo seja que, às vezes, há muitos visitantes e conexões descartadas do nginx que não podem ser gerenciadas? (Anteriormente havia apache e ocasionalmente congelava VDS). Mas sem erros nos logs, nada. Na saída superior, vejo que há apenas 2-4 mb de espaço de troca usado.
É: arch linux, nginx, php-fpm.
arquivo de configuração: usuário http http;
worker_processes 1;
error_log /var/log/nginx/nginx.error.log;
events {
worker_connections 2048;
}
http {
include mime.types;
default_type application/octet-stream;
error_log /var/log/nginx/http.error.log;
sendfile on;
gzip on;
gzip_static on;
gzip_vary on;
client_body_buffer_size 1k;
client_header_buffer_size 1k;
client_max_body_size 5m;
large_client_header_buffers 2 1k;
client_body_timeout 10;
client_header_timeout 10;
keepalive_timeout 5 5;
send_timeout 10;
server {
listen 80;
server_name www.A.com www.B.org www.F.net;
if ($host ~* ^www\.(.+)) {set $domain $1;}
return 301 $scheme://$domain$request_uri;
}
server {
listen 80;
server_name A.com *.A.com B.org F.net;
root /home/user/public_html/$host;
access_log /var/log/nginx/$host-access.log;
error_log /var/log/nginx/server.error.log;
location / {
try_files $uri $uri/ /index.php?$args;
index index.html index.htm index.php;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
location ~ \.php$ {
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
try_files $uri =404;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
}
E, claro, acho que preciso encontrar o motivo, não apenas consertar o problema.
Muito obrigado!
Tente aumentar o tvice worker_connection. Ou se você tiver mais de um núcleo - aumente o worker_processes para o número de núcleos.
Isso pode ajudá-lo ... do wiki da Nignx
client_body_buffer_size Syntax: client_body_buffer_size size Default: 8k|16k Context: http server location Reference: client_body_buffer_size
The directive specifies the client request body buffer size.
If the request body size is more than the buffer size, then the entire (or partial) request body is written into a temporary file.
The default size is equal to page size times 2. Depending on the platform, the page size is either 8K or 16K.
When the Content-Length request header specifies a smaller size value than the buffer size, then Nginx will use the smaller one. As a result, Nginx will not always allocate a buffer of this buffer size for every request.
serializar as requisições com accept_mutex on
também pode ajudar ... Eu costumo checar o log do php-fpm também. A melhor coisa é verificar o comportamento como / porque o servidor não faz o servidor da página pretendida. Log é o único amigo que temos aqui, então, se você souber a hora em que o servidor não responde à solicitação, pode haver algo no log.
Ah, e Nginx reload
pode fazer o truque, em vez de restart
, que interromperá o serviço por um tempo.
Se você tiver algo parecido, tente rastrear e verificar o DNS. Não tenho certeza, mas provavelmente nosso problema estava com os servidores DNS.
Tags nginx php-fpm domain arch-linux