さくらインターネットのレンタルサーバーで、End of script output before headers というエラーが発生しました。
このエラーは「エラーログ」で確認できました。
クライアントの画面には「500 Internal Server Error」が表示されました。
アクセスログには、
xxxx.com /index.php xxxx.ocn.ne.jp - - [XX/Dec/2022:08:30:49 +0900] "GET / HTTP/1.1" 500 531 "-" "Mozilla/5.0 (iPhone; CPU ....
という感じの 500エラー が記録されていました。
普段のアクセス数ではこのようなエラーは起きないのですが、たまたまこの時、WordPressで作成したサイトのトップページに対して、1分間に200PVくらいのアクセスがあった模様で、さくらインターネットのレンタルサーバーで捌くのはちょっときびいしいかな...というような状況でした。
アクセス数が減った数分後には、再びトップページが表示できるようになりました。
この時、サーバー上の、このサイトを表示するためのHTTPDプロセスが、さくらのレンサバで設定(利用者は変更できない)されている「当該アカウントで利用可能なメモリの上限(2GB?)を超えてしまった」ようで、このサーバーに同居している他のユーザーに迷惑がかからないようにと、メモリ上限を超えたプロセスを、システムがKILL(KILLの条件はCPU負荷など他の理由もあります)していたようなのです。
さくらのレンサバやWPには、アクセス数が多くなった場合の対処としてできることがいくつかあります。
・さくらのレンサバの「リソースブースト」(同時接続数と転送量上限値を一定期間緩和する)
・WordPressのキャッシュプラグイン「WP Super Cache」(クイックインストールでWPをインストールすると導入される。有効化は手動で)
しかしながら、これらを行うと、WordPressがよりいっそう快適に動けるようになり、結局は「メモリの破綻」が発生してしまい、最後には「500 Internal Server Error」が発生してしまうような気がします。
要は、さくらのレンサバへのアクセス数を減らしてあげることが、最終的な解決策なのだと思います。
というわけで、結論としては、
コンテンツブーストを使おう!
ということになるのではないかと思う次第です。
コンテンツブーストは、さくらインターネットが、「CDNを簡単に利用できるように」と提供してくれているサービスで、さくらのレンサバのプレミアムプラン以上のユーザーは、300GB/月まで無料で利用できます。
設定も簡単、ON/OFFもコンパネから簡単にできます。
スタンダードプラン以下のユーザーは、300GB/月で1100円/月です。
大量のアクセスをスマートに捌きたい場合は、コンテンツブーストを利用してみてはいかがでしょうか?
ただし、キャッシュサーバーですので、以下の点に注意してください。
・個人情報を配信するサーバーには不向き。(情報漏洩)
・ECサイトには不向き。(誤動作、情報漏洩)
・WordPressの予約公開には不向き。(時間差が発生する)
ぐっどらっこ。