Apache + PHP-FPM = aleatorio "Error al analizar encabezados de script" + Fallos Seg

8

Tengo la configuración de PHP-FPM con Apache 2.4 usando proxy_fcgi, todo funciona bien, pero cada uno en 4-6 solicitudes, Apache devuelve una página en blanco. Esto sucede en mi sitio principal http://danielhe.com/ , pero no en el subdominio vhosts.

Esto muestra el registro de errores de Apache, [cliente x] AH01070: Error al analizar encabezados de script

Y eventualmente, a veces Apache segfaults AH00052: señal de salida de pid 9740 secundaria Fallo de segmentación (11)

Puedo reproducir los "Encabezados de script de análisis de error" muy fácilmente actualizando la página un par de veces, pero la falla seg ocurre aleatoriamente después de un par de "Encabezados de script de análisis de error"

Actualización He encontrado una solución para las fallas seg, y el WSOD aparentemente se ha solucionado. mod_deflate tiene algunos problemas, pero esta configuración de la documentación de Apache lo solucionó

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
usuario9517
fuente
2
Debe responder su propia pregunta y marcarla como una respuesta aceptada para que esta pregunta parezca resuelta
Regilero

Respuestas:

2

La solución fue usar esta configuración

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
usuario9517
fuente
¿Estás seguro de que el problema está en mod_deflate? ¿Alguna referencia? Parece muy extraño ...
GioMac
@GioMac: No tengo idea, el OP dice que eso es lo que resolvió el problema en la pregunta. Solo lo puse en una respuesta. Tenga en cuenta que SO nos lo envió y originalmente fue respondido el 9 de marzo de 2012.
user9517
0

Puedo confirmar que la solución anterior funcionó para mí, pero también tuve que arreglar mi configuración de ProxyPassmatch.

Configuración antigua

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

Nueva configuración: filtro de reescritura diferente, más el código de arriba

<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
fuente
0

El problema aquí es que la respuesta de phpList no llena un paquete completo. php-fpm interrumpe la conexión con Apache prematuramente si su respuesta no llena al menos un búfer. Como solución alternativa, puede cambiar a mod_php temporalmente o rellenar la respuesta con texto generado aleatoriamente.

Aeyoun
fuente