Apache + PHP-FPM = aleatório "Erro ao analisar os cabeçalhos do script" + Falhas de Seg

8

Eu tenho a configuração do PHP-FPM com o Apache 2.4 usando proxy_fcgi, tudo funciona bem, mas todos em 4-6 solicitações, o Apache retorna uma página em branco. Isso acontece no meu site principal http://danielhe.com/ , mas não nos subdomínios vhosts.

Isso mostra o log de erros do Apache, [client x] AH01070: Erro ao analisar os cabeçalhos de script

E, eventualmente, às vezes o Apache segfaults AH00052: sinal de saída filho pid 9740 Falha na segmentação (11)

Eu posso reproduzir o "Erro ao analisar os cabeçalhos do script" com muita facilidade atualizando a página algumas vezes, mas a falha seg ocorre aleatoriamente após algumas "Erro ao analisar os cabeçalhos do script"

Atualização Encontrei uma correção para as falhas seg, e o WSOD aparentemente se corrigiu. O mod_deflate tem alguns problemas, mas esta configuração da documentação do Apache o corrigiu

SetOutputFilter DEFLATE
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
# Don't compress images
SetEnvIfNoCase Request_URI \
\.(?:gif|jpeg|jpg|png)$ no-gzip dont-vary
# Make sure proxies don't deliver the wrong content
Header append Vary User-Agent env=!dont-vary
user9517
fonte
2
Você deve responder a sua própria pergunta e marcá-lo como uma resposta aceita fazer esta pergunta parece um resolveu um
regilero

Respostas:

2

A solução foi usar essa configuração

SetOutputFilter DEFLATE
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
# Don't compress images
SetEnvIfNoCase Request_URI \
\.(?:gif|jpeg|jpg|png)$ no-gzip dont-vary
# Make sure proxies don't deliver the wrong content
Header append Vary User-Agent env=!dont-vary
user9517
fonte
Tem certeza de que o problema está no mod_deflate? Alguma referência? Parece muito estranho ...
GioMac 26/08/12
@GioMac: Não faço ideia - o OP diz que foi isso que resolveu o problema na questão. Eu apenas coloco em uma resposta. Note-se que SO enviou para nós e ele foi originalmente respondeu em 9 de março de 2012.
user9517
0

Posso confirmar que a solução acima funcionou para mim, mas também tive que corrigir as configurações do ProxyPassmatch.

Configuração antiga

<IfModule proxy_module>
ProxyPassMatch ^/(.*\.php(/.*)?)$ fcgi://127.0.0.1:9000/home/YOURDOMAIN/public_html/$1
</IfModule>

Nova configuração - filtro de reescrita diferente, mais código acima

<IfModule proxy_module>
ProxyPassMatch ^(.*\.php)$ fcgi://127.0.0.1:9000/home/YOURDOMAIN/public_html/$1
</IfModule>

<IfModule mod_deflate.c>
SetOutputFilter DEFLATE
...code from above
</IfModule>
Alauddin
fonte
0

O problema aqui é que a resposta do phpList não preenche um pacote completo. O php-fpm interrompe a conexão com o Apache prematuramente se sua resposta não preencher pelo menos um buffer. Como solução alternativa, você pode mudar temporariamente para mod_php ou preencher a resposta com algum texto gerado aleatoriamente.

Aeyoun
fonte