Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Random PHP FastCGI / Connection reset por peer / cabeçalhos incompletos


Esse problema geralmente não é apenas específico do host, mas também relacionado ao desenvolvedor, dependendo da configuração. No entanto, alguns hosts são bastante rígidos com FastCGI e limitarão seus recursos. Geralmente, é mais fácil executar sem usar FastCGI e apenas usar mod_php, a menos que você tem necessidade específica de usar FastCGI em sua aplicação.

Precisaríamos ver seu wrapper fcgi (o que está em /dev/shm/blackmou-php.fcgi) ou .htaccess para geração de FastCGI, para melhor ajudá-lo sem saber quais arquivos e o código que está nesses arquivos com os quais o problema ocorre. Seus hosts também usam Apache, LightHttpd ou Nginx (ou combinação)? Nesse ponto, sugiro fortemente a atualização para usar o PHP 5.3.9+

Como isso pode ser causado por vários problemas, o FastCGI impede efetivamente que seu site/scripts sejam atacados por uma Negação de Serviço ou travando devido a vazamentos de memória, etc. de solicitações ou ficar preso em um loop sem fim ao expirar e encerrar o processo)

Esse erro em particular geralmente é causado por um idle_timeout (30 segundos por padrão) ou limite máximo de processos filhos. Também pode ser causado por alguém iniciando um script de longa execução e fechando seu navegador/conexão antes que o script seja concluído.

O FastCGI inicia seu wrapper de processo, executa um comando, atinge o tempo limite antes de concluir o processo, a conexão é vista como redefinida pelo peer.

Outro exemplo é que o máximo de filhos (maxProcesses) é atingido (por exemplo:muitos sites mostram 2 ou 4 como exemplo quando na realidade você pode precisar de 20 ou 50 dependendo do tráfego médio) Se todos os filhos estiverem ativos no momento e uma solicitação adicional/ a conexão é feita, os filhos são limitados a maxProcesses, para os quais o FastCGI não compartilhará os filhos ativos, portanto, ele deve primeiro encerrar o processo e iniciar um novo processo filho ou descartar a solicitação, dependendo de suas configurações.

Aqui estão mais algumas informações sobre as configurações:

http://www.fastcgi.com/mod_fastcgi/docs/mod_fastcgi.html

http://www.fastcgi.com/drupal/node/10

Exemplo de invólucro
PHP_FCGI_CHILDREN=0 #no limit
export PHP_FCGI_CHILDREN
PHP_FCGI_MAX_REQUESTS=10000
export PHP_FCGI_MAX_REQUESTS

ATUALIZAÇÃO

Para adicionar a isso, isso também pode ser causado pelo limite de memória do php

Se o acima não resolver seu problema, atualize seu php.ini para aumentar o memory_limit