当社のWebサイトでは、サイトがダウンしそうになった場合に、代わりにカスタム503が表示されるようにします(当社が設定したサーバー負荷制限に基づきます)。これを処理できるものは既に組み込まれているのでしょうか、それとも役立つかもしれないプラグインがありますか?
手動切り替えメンテナンスモードのプラグインが利用可能であることを私は知っていますが、サイトが大量のトラフィックにぶつかった場合、それらは取り除かれるでしょう。
Twitterや他の大規模サイトでは、おそらくサーバーよりも1つ上の層になります。おそらく、すべてのサーバーのサーバー負荷を検出できるロードバランサーを使用し、負荷が高すぎる場合(マシンが応答を停止したとき)、トラフィックを「失敗クジラ」ページのみを返すサーバーにリダイレクトします。
スタックオーバーフローに関するこの答え は、sys_getloadavg()
を見て、高すぎる場合はエラーを表示することをお勧めします(そして "高すぎる"は試行錯誤によって定義されるべきです) )私はこれをWordPressを "ブート"するメインのindex.php
ファイルで行います。これは簡単に終了してサーバーに負荷をかけないためです。
システムがLinux上にある場合は、実際のサーバー負荷を/proc/loadavg
から読み取ることができます。
例えば:
$load = reset ( explode ( ' ' , file_get_contents('/proc/loadavg') ) );
if ($load > 3.14 )
{
// load too high,
header('HTTP/1.1 503 Service Temporarily Unavailable');
header('Status: 503 Service Temporarily Unavailable');
header('Retry-After: 60');
fail_whale();
}
編集:ヘッダメソッドの行を追加しました。
データベースがダウンしたときのメッセージを、db-error.php
ディレクトリのwp-content
ドロップダウンでカスタマイズできます。
しかし、PHPがダウンしていたら、WPやそのプラグインができることは何もないと思います。どのようにサーバーの503ページをカスタマイズすることができますかあなたのホスティングに依頼することをお勧めします。
.htaccessファイルに次の行を追加します。
ErrorDocument 503 /error503.html
次に、カスタムのものが含まれているサイトのルートにerror503.htmlファイルを作成します。
これはあなたのホスティングがどのように設定されているかに応じて動作するかもしれません。