【Wordpress】アクセス過多で503&表示速度高速化に対応する方法。【WordPress】アクセス過多で503&表示速度高速化に対応する方法。キャッシュプラグインを使う【WordPress】アクセス過多で503&表示速度高速化に対応する方法。Unavailable」が頻発しました。一日でGoogleアナリティクス上で10000PVを超えましたが、およそ6000人近くの方にこのエラーを返してしてしまい閲覧できない状態にさせてしまいました。)以前にもこういうパターンは何回かあったのですが、そろそろブログのアクセスも増えてきたのでアクセス過多によるエラーを削減する為の対応を行いました。さいごに自分のブログの処理の問題点を洗い出すこのブログはさくらインターネットのスタンダードプランを利用しています。以下、さくらインターネットの公式ヘルプに記載されている503ステータスを返す場合についての記載です。お客様のウェブページに対して訪問者のアクセスが集中しているため、一時的に込み合っていることを示すエラーメッセージです。時間を置いてもう一度確認するか、アクセスが少ないと思われる時間帯にもう一度接続してみてください。設置しているCGIが何らかの原因で誤作動を起こしている可能性があります。sshを利用できる状況であれば、動作不良プロセスがあるかどうか確認し、不良動作プロセスを強制終了させることができます。利用することが困難な場合は、さくらインターネットサポートセンターに直接ご依頼ください。お客様のウェブページに対してアクセス転送量が著しく集中した場合、他のユーザに迷惑をかけないために一時的に表示される場合があります。転送量の多いコンテンツを見直すか、上位プランなどご検討ください。たしかに集中アクセスで制限がかかったのは原因の一つではありますが、うちのブログの場合は定期的にこういうアクセスがある訳ではありません。それよりも元々このブログは記事を表示する度に、OAuthを使用してTwitterAPIを叩く実装をしている記事ランキングを表示するのに毎回ランキングの計算を行っているという処理を毎回実行する既知の問題がありました。ページ表示毎に叩くので、CPU負荷が高くなり、アクセス制限を受けやすい作りだと考えています。TwitterAPIも連続して呼び出せる回数に制限があるので、実装的にあまりよろしくない事をしています。ここを改善する所から始めました。Cache」を使用しました。WordPressこのプラグインはキャッシュ用の静的なhtmlを出力しておき、キャッシュの有効期限中は毎回動的に一からページを作成せずに静的なhtmlの内容を返してくれるプラグインです。毎回、一から動的にページを生成する処理がなくなるのでCPU負荷が減る上に、表示速度の改善にもつながります。基本的に推奨設定のみONにしていますが、一部設定を変更しています。「ページを圧縮し、訪問者により速くページを供給する。OFF設定をONにするとgzipを使った圧縮ファイルによる転送を行うようになります。gzipを利用した圧縮ファイルに転送は、以前、mod_deflateを使用して表示速度の改善を試みた時にあまり改善出来なかったので今回は見送りました。この設定はOFFにしています。」はONレスポンシブデザインを使用していたとしてもwp_is_mobile関数などで、スマホとPCで表示処理を分けている場合に必要です。静的htmlを出力するといいましたが、この設定をONにしておかなければスマホで閲覧された時にキャッシュのhtmlが出力された場合、他の方がPCで見た時もスマホで閲覧したときのキャッシュが表示されてしまいます。設定をONにするとPC用とモバイル用のキャッシュ用htmlを別々に出力し、プラグインがユーザーエージェントでスマホからかPCからかのアクセスを判定して、適切なページをユーザーに返してくれます。この設定はONにしています。しれませんが、同ページで各3回ずつページの表示速度を計測した結果です。キャッシュ有効後は表示速度も短縮されています。CPU使用率については、まだ比較は行っていませんがページ表示毎にOAuthを使用してTwitterAPIを叩く実装をしている記事ランキングを表示するのに毎回ランキングの計算を行っているという処理がなくなったので、確実にサーバーのCPU使用率は減っているはずです。これについてはキャッシュ有効化後にどのように変わったか経過を暫くみてみます。キャッシュ系プラグインを使う場合は注意が必要キャッシュ系のプラグインを使って「画面が真っ白になった、wordpressが壊れた」ということをよくネット上で見ますが、これはインストールやアンインストールの手順を間違えた場合に発生します。Cache」はwp-config.phpの書換え、.htaccessの書換えも行います。どちらのファイルもサーバー全体の設定に関わる重要なファイルです。簡単ではありますが、問題が発生した場合の対応方法を記載しておきます。ページを表示したら、なんか変なコードが「わっ」と表示された場合wp-config.phpの記述に問題が発生しています。設定が間違っていないか、文法に間違いがないかを確認してください。Manager」というコメント文を追加してくれるので、ファイル内を検索してみたらすぐに問題の箇所が見つかるかもしれません。Errorが発生した場合wordpressのディレクトリ内にある.htaccessの記述に問題がないか確認してみてください。mod_rewriteによるキャッシュ制御を行った場合、.htaccessの変更が必要です。この設定がうまくいかなかったのが原因の可能性が高いです。Errorが発生した場合」と同等の原因です。プラグインは停止したが、.htaccessにはmod_rewriteの設定だけが残ってしまった可能性が高いです。パーマリンク設定画面で更新ボタンを押したら直ったという記事を見ましたが、これはパーマリンクの更新を行った際に.htaccessの書換えが発生したのでたまたま直ったのかと思われます。.htaccessの記述に問題がないか確認してみてください。キャッシュ系プラグインを使う事で副作用が発生する事を理解する事も大事ページの表示処理の中に閲覧数をカウントするようなプラグインを使用している場合は閲覧数がカウントされなくなる可能性があります。これはキャッシュ期間中は静的ページの内容を返すので、カウントを行うphpのコードが実行されないからです。3.3.1)を使っていますが、この点はプラグインがAjax(非同期通信技術の事です)のコードをデフォルト設定で出力してくれていたので問題ありませんでした。キャッシュ更新時に閲覧数の表示も更新されます。このプラグインを使っている場合でキャッシュ化する事でアクセスカウンタが正しく動かない場合は設定画面にAjaxに関する設定があるので試してみるのもよいかもしれません。理解さえすれば便利なプラグインだが、初心者向けのプラグインではないプラグインのインストール方法とアンインストール方法はプラグインフォルダ内のreadme.txtに記載されている場合が殆どです。Cache」もreadme.txtに英文ですがどのファイルを変更するかやインストール、アンインストール方法が記載されています。.htaccessやwp-config.phpに何が書かれているかプラグインがどこのディレクトリにどのようなファイルを出力するのか、どのファイルを書き換えるのかを理解している方であれば、キャッシュ系のプラグインはお勧めです。表示速度改善にもつながります。他の方がネットで言っているように初心者の方やであればキャッシュ系のプラグインは使わない方がよいというのも本当です。設定を間違えれば画面が真っ白になったり、エラーが発生する可能性もあります。プラグインを削除する場合も、アンインストールを正しく行わなければ設定ファイル内やフォルダにゴミが残ります。さいごに今回筆者が対応した方法は、アクセス過多と表示速度改善対策のうちの一つにすぎませんが、集中アクセスでサーバーが503エラーを返す場合やリソース制限をよく受ける方は一度、キャッシュ制御による対策をおこなってみてはいかがでしょうか。参考になりましたら幸いです。【WordPress】アクセス過多で503&表示速度高速化に対応する方法。ブロガーであり「たむらんち」の家主です。BAR、撮影、鳥取が大好きです。半年に1回は帰省しています。おかげ様で月間5万人以上の方にブログを閲覧していただけるようになりました。得意分野は雑学、IT系です。