500 エラーについて – 続報
先日お伝えした障害報告 の続報です。
現状:とりあえず直ったみたい 
ちょっと技術的な内容になりますが、詳細は以下の通り。
プロバイダにエラーログを提供していただき、確認しましたところ、 “Premature end of script headers” というエラーが記録されていました。 これは、CGI から Apache にデータを渡す際に、http ヘッダが正常に出力されていない場合に記録されるようです。 参考:Apache Tutorial: CGI による動的コンテンツ – Apache HTTP サーバ
このエラーが発生する原因は、CGI の設定またはファイルに不備がある可能性が最も高いのですが、CGI 側に何の変更も加えていないのに、見えるときと見えないとき(500 エラーが発生)があります。 そこで、もう一度プロバイダに問い合わせましたところ、CGI の処理に時間がかかりすぎて、Apache でタイムアウトが発生しているのかもしれないというコメントをいただきました。
確かに、この WordPress には プラグインを 13個も入れているので重いはずです。 どのプラグインを外そうかと考えているところで、ふと http ヘッダを見ると、有効にしているはずの gzip 圧縮転送 がなぜか効いていませんでした。 gzip 圧縮を有効にしていると、全データを生成してから圧縮し、それを Apache に渡します。 もしかしてこれが原因? と、試しに gzip 圧縮を無効にしたところ 500 エラーがでなくなりました。 若干転送時間は長くなりますが… 全く表示されなくなるという事態はこれで回避できそうです。
Twitter でコメントをつぶやく ← Twitter のアカウントが必要です
- Japan - Osaka
- Germany - Düs.
- USA - Los Angeles
- USA - Texas