Apache + PHP-FPM =ランダムな「エラー解析スクリプトヘッダー」+セグメントフォールト


8

私は、proxy_fcgiを使用して、Apache 2.4でPHP-FPMを設定していますが、すべて正常に動作しますが、4〜6リクエストのすべてで、Apacheは空白のページを返します。これは私のメインサイトhttp://danielhe.com/で発生しますが、サブドメインvhostsでは発生しません。

これは、Apacheのエラーログ[クライアントx]を表示しますAH01070:スクリプトヘッダーの解析エラー

そして最終的には、Apache segfaults AH00052が時々発生します:子pid 9740終了信号セグメンテーション違反(11)

「エラー解析スクリプトヘッダー」はページを数回更新することで非常に簡単に再現できますが、「エラー解析スクリプトヘッダー」を数回実行すると、セグメンテーション違反がランダムに発生します。

更新 セグメンテーション違反の修正を見つけました。WSODは明らかにそれ自体を修正しました。mod_deflateにはいくつかの問題がありますが、Apacheドキュメントのこの構成により修正されました

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

2
あなた自身の質問に答え、この質問が解決された質問のように見えるようにするには、それを承認済みの回答としてマークする必要があります
regilero

回答:


2

解決策はこの構成を使用することでした

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

問題がmod_deflateにあることを確信していますか?参照はありますか?非常に奇妙に見える...
GioMac

@GioMac:わからない-OPはそれが問題の問題を解決したものだと言っています。私はそれを答えに入れました。SOが私たちに送信し、2012
。– user9517

0

上記のソリューションが機能したことを確認できますが、ProxyPassmatch設定も修正する必要がありました。

古い構成

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

新しい設定-異なる書き換えフィルターと上記のコード

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

0

ここでの問題は、phpListからの応答がパッケージ全体を満たさないことです。php-fpmは、応答が少なくとも1つのバッファを満たさない場合、Apacheとの接続を途中で切断します。回避策として、一時的にmod_phpに切り替えるか、ランダムに生成されたテキストで応答を埋め込むことができます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.