Após a depuração por 6 horas - eu estou desistindo disso: |
Temos um nginx + php-fpm + mysql na LAN com quase 100 wordpress (criados e usados por diferentes designers / desenvolvedores, todos trabalhando na configuração de wordpres de teste)
Estamos usando o nginx sem problemas por muito tempo.
Hoje, de repente, o nginx começou a retornar "504 Gateway Time-out" do nada ...
Eu verifiquei o log de erro do nginx para um host virtual ...
2010/09/06 21:24:24 [error] 12909#0: *349 upstream timed out (110: Connection timed out) while reading response header from upstream, client: 192.168.0.1, server: rahul286.rtcamp.info, request: "GET /favicon.ico HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "rahul286.rtcamp.info"
2010/09/06 21:25:11 [error] 12909#0: *349 recv() failed (104: Connection reset by peer) while reading response header from upstream, client: 192.168.0.1, server: rahul286.rtcamp.info, request: "GET /favicon.ico HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "rahul286.rtcamp.info"
2010/09/06 21:25:11 [error] 12909#0: *443 recv() failed (104: Connection reset by peer) while reading response header from upstream, client: 192.168.0.1, server: rahul286.rtcamp.info, request: "GET /info.php HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "rahul286.rtcamp.info"
2010/09/06 21:25:12 [error] 12909#0: *443 connect() failed (111: Connection refused) while connecting to upstream, client: 192.168.0.1, server: rahul286.rtcamp.info, request: "GET /favicon.ico HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "rahul286.rtcamp.info"
2010/09/06 22:08:32 [error] 12909#0: *1025 upstream timed out (110: Connection timed out) while reading response header from upstream, client: 192.168.0.1, server: rahul286.rtcamp.info, request: "GET / HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "rahul286.rtcamp.info"
2010/09/06 22:09:33 [error] 12909#0: *1025 upstream timed out (110: Connection timed out) while reading response header from upstream, client: 192.168.0.1, server: rahul286.rtcamp.info, request: "GET /favicon.ico HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "rahul286.rtcamp.info"
2010/09/06 22:09:40 [error] 12909#0: *1064 recv() failed (104: Connection reset by peer) while reading response header from upstream, client: 192.168.0.1, server: rahul286.rtcamp.info, request: "GET /info.php HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "rahul286.rtcamp.info"
2010/09/06 22:09:40 [error] 12909#0: *1064 connect() failed (111: Connection refused) while connecting to upstream, client: 192.168.0.1, server: rahul286.rtcamp.info, request: "GET /favicon.ico HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "rahul286.rtcamp.info"
2010/09/06 22:24:44 [error] 12909#0: *1313 upstream timed out (110: Connection timed out) while reading response header from upstream, client: 192.168.0.1, server: rahul286.rtcamp.info, request: "GET / HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "rahul286.rtcamp.info"
2010/09/06 22:24:53 [error] 12909#0: *1313 recv() failed (104: Connection reset by peer) while reading response header from upstream, client: 192.168.0.1, server: rahul286.rtcamp.info, request: "GET /favicon.ico HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "rahul286.rtcamp.info"
Ao executar o php-fpm na porta 9000 via modo TCP, executei "netstat | grep 9000" e notei algo incomum ... (Colando aqui uma saída parcial para facilitar a leitura)
tcp 9 0 localhost:9000 localhost:36094 CLOSE_WAIT 14269/php5-fpm
tcp 0 0 localhost:46664 localhost:9000 FIN_WAIT2 -
tcp 1257 0 localhost:9000 localhost:36135 CLOSE_WAIT -
tcp 1257 0 localhost:9000 localhost:36125 CLOSE_WAIT -
tcp 9 0 localhost:9000 localhost:36102 CLOSE_WAIT 14268/php5-fpm
tcp 0 0 localhost:46662 localhost:9000 FIN_WAIT2 -
tcp 745 0 localhost:9000 localhost:46644 CLOSE_WAIT -
tcp 0 0 localhost:46658 localhost:9000 FIN_WAIT2 -
tcp 1265 0 localhost:9000 localhost:46607 CLOSE_WAIT -
tcp 0 0 localhost:46672 localhost:9000 ESTABLISHED 12909/nginx: worker
tcp 1257 0 localhost:9000 localhost:36119 CLOSE_WAIT -
tcp 1265 0 localhost:9000 localhost:46613 CLOSE_WAIT -
tcp 0 0 localhost:46646 localhost:9000 FIN_WAIT2 -
tcp 1257 0 localhost:9000 localhost:36137 CLOSE_WAIT -
tcp 0 0 localhost:46670 localhost:9000 ESTABLISHED 12909/nginx: worker
tcp 1265 0 localhost:9000 localhost:46619 CLOSE_WAIT -
tcp 1336 0 localhost:9000 localhost:46668 ESTABLISHED -
tcp 0 0 localhost:46648 localhost:9000 FIN_WAIT2 -
tcp 1336 0 localhost:9000 localhost:46670 ESTABLISHED -
tcp 9 0 localhost:9000 localhost:36108 CLOSE_WAIT 14274/php5-fpm
tcp 1336 0 localhost:9000 localhost:46684 ESTABLISHED -
tcp 0 0 localhost:46674 localhost:9000 ESTABLISHED 12909/nginx: worker
tcp 1336 0 localhost:9000 localhost:46666 ESTABLISHED -
tcp 1257 0 localhost:9000 localhost:46648 CLOSE_WAIT -
tcp 1336 0 localhost:9000 localhost:46678 ESTABLISHED -
tcp 0 0 localhost:46668 localhost:9000 ESTABLISHED 12909/nginx: wo
Existem muitos pares "CLOSE_WAIT" e "FIN_WAIT2", conforme destacado abaixo (na saída acima):
tcp 1337 0 localhost:9000 localhost:46680 CLOSE_WAIT -
tcp 0 0 localhost:46680 localhost:9000 FIN_WAIT2 -
Observe a porta 46680 acima.
Eu habilitei o log de erros do mysql slow query, mas não funcionou.
A partir de agora, reinicie o php5-fpm a cada minuto através de um cronjob (veja o comando abaixo) mantendo tudo funcionando "sem problemas", mas eu odeio patchwork e quero resolver isso ...
1 * * * * service php5-fpm restart > /dev/null
Pesquisei bastante no Google - não recebi ajuda. Como mencionado, este é um servidor de teste na LAN, a carga da CPU nunca ultrapassa 0,10 e o uso da memória também é inferior a 25% (o sistema possui 2 GB de RAM e o servidor ubuntu instalado). pelo menos dê uma dica.
Agradecemos antecipadamente a ajuda.
-Rahul
(note - isto é republicado em - http://forum.nginx.org/read.php?11,127694 )
Atualização: Encontrei a resposta, publicada abaixo.
[global]
. Ele funciona lá apenas se você também tiver suas configurações de pool. Também: request_terminate_timeout docs .request_terminate_timeout=30s
no meuphp-fpm.conf
arquivo causou um erro (111 Conexão recusada). Quando o mudei para o meuwww.conf
arquivo, ele funcionou.Aqui como ele resolveu meu problema:
faça as seguintes alterações no /etc/nginx/nginx.conf na http {section
e depois reinicie o nginx
/etc/init.d/nginx restart
fonte
Se você estiver usando o php 5.3, aumente a lista de pendências.
Se você estiver usando o php 5.2, faça o backport do patch para aumentar o tamanho da lista de pendências de 128.
Além disso, use um soquete unix em vez de um soquete TCP. unix: /tmp/php5-cgi.sock (ou o caminho relevante)
fonte
Ótimo obrigado
request_terminate_timeout = 30s
Funciona perfeitamente para mim
mas tive que inserir a linha neste arquivo: "/etc/php5/fpm/pool.d/www.conf", ou seja, na "Seção Trabalhador".
PHP 5.3.21-1 - Wordpress 3.5.1
http://php-fpm.org/wiki/Configuration_File
fonte
no meu caso (mesma mensagem de erro do nginx), alguns scripts php problemáticos não terminam para executar e aguardam algo, resultando em não mais filhos php5-fpm para o nginx escolher.
consertar:
request_terminate_timeout=30s
pm.max_spare_servers=16
pm.min_spare_servers=2
agora tudo funcionava como um encanto.
fonte
Eu tive o mesmo problema e resolvi removendo completamente o Apache:
Depois disso, recomendo restaurar o PHP e o NGINX:
fonte
Para mim, o mesmo problema ocorreu após a remoção do rabbitmq do servidor. Nada acima foi útil, a reinstalação de todos os módulos php5 resolveu o problema. Eu tinha o Debian 8.2 nesse servidor. A esperança será útil para alguém.
fonte
Isso também pode ajudar as pessoas:
Dependendo da configuração, você deve observar os parâmetros de configuração do fastcgi e o php ... no meu caso (estou usando apache2 + php5-fpm) e o tempo máximo de execução também depende de quanto tempo o módulo fastcgi aguarda resposta ( -idle-timeout) ...
http://www.fastcgi.com/mod_fastcgi/docs/mod_fastcgi.html#FastCgiExternalServer
fonte