502 erros em páginas aleatórias (nem todas)

1

Algumas semanas atrás, notei nas ferramentas do Google para webmasters que alguns dos meus URLs estavam retornando os 502's.

Um desses URLs é o link

Esse URL retorna o 502 para qualquer capa de desktop, mas funciona bem quando está no celular (pele diferente)

Note que ele retorna o 502 muito rapidamente, sugerindo que não é uma execução ou alguma forma de tempo limite.

Além de mais alguns como este, todos os outros URLs no site são bons.

A única entrada de log para ajudar é essa;

2015/06/29 09:33:39 [error] 19650#0: *4431763 upstream prematurely closed FastCGI stdout while reading response header from upstream, client: 94.228.34.203, server: sau.com.au, request: "GET /forums/topic/437438-around-the-bay-wrap-up/ HTTP/1.1", upstream: "fastcgi://unix:/var/run/php-fpm/php-fpm.sock:", host: "www.sau.com.au", referrer: "http://www.sau.com.au/forums/forum/100-victoria/"

Eu também reiniciei a APC, o que não ajudou. Ele tinha apenas 1,5% de fragmentação.

Não consigo encontrar entradas com limite de alcance. O servidor é bastante alto, então o PHP tem muita memória, tamanhos de requisições e também longos tempos de espera.

Eu tentei o seguinte que eu li sobre, mas não diff.

fastcgi_buffer_size 10240k;
fastcgi_buffers 4 10240k;

Estou relutante em fazer grandes mudanças porque isso é apenas em algumas páginas. Um tópico sugeriu atualizar o PHP para 5.5.

Eu não sei onde procurar agora para obter mais assistência. Qual deve ser o próximo passo?

Algumas informações;

nginx version: nginx/1.6.2
PHP 5.3.3 (fpm-fcgi) (built: Oct 30 2014 20:14:56)

UPDATE 1

O log de erros do PHP não tem nada gravado nele. O registro de erros está ativado embora;

php_admin_value[error_log] = /var/log/php-fpm/www-error.log
php_admin_flag[log_errors] = on

UPDATE 2

O dmesg parece não estar atualizando e não há kernel.log;

-rw-r--r--   1 root   root       41179 Dec 18  2014 dmesg

RESOLVIDO

Eu estava instalando o XDebug como proposto por @ sa289 em esta resposta e para isso eu precisava atualizar do PHP 5.3 para o PHP 5.5. Eu esperava que isso resolvesse o problema sozinho, mas isso não aconteceu. Então, eu instalei o XDebug e adicionei o zend_extension ao php.ini, reiniciei o PHP e voilà o 502 sumiu. Eu comentei a extensão zend novamente e os 502 retornaram. XDebug para o resgate. Não há um aperto firme na causa ou resolução verdadeira, mas isso é bom o suficiente para mim.

    
por Christian 29.06.2015 / 02:59

1 resposta

1

Eu veria onde isso poderia estar ocorrendo usando o Xdebug. O Xdebug pode ser usado para fazer algo chamado rastreio, onde ele informará cada linha de código que é executada e, dessa forma, você poderá ver a última linha de código que foi executada antes de travar, para que você aponte na direção correta. Você pode fazer com que ele rastreie somente quando um determinado cookie for configurado, para que você não esteja gerando logs de rastreamento para cada solicitação. Confira especialmente as seguintes configurações:

  • xdebug.trace_enable_trigger
  • xdebug.trace_output_dir
  • xdebug.collect_params
  • xdebug.trace_output_name (Eu gosto de "trace.% p.% t" porque coloca o PID no nome do arquivo que pode ser útil em certos casos)

Consulte o link para obter detalhes sobre esses parâmetros de configuração, além de outros.

    
por 07.07.2015 / 02:39