WordPressの遅さ対策:完結編 nginxはスゴい

シェアする

  • このエントリーをはてなブックマークに追加

ブログ開設当初からWordPressの遅さに悩まされていました。
とにかく重いんです。
管理画面にログインするのに20秒ぐらいかかるし、管理画面のメニューから遷移するのに30秒ぐらい普通にかかっていました。
極めつけは管理画面からのログアウトで、ログアウトを押してもグルグルと回って延々とログアウト出来ないことがよくありました。
あまりの遅さに管理画面を操作するのが億劫になっていました。
現在は、その悩みから完全に解放されていますので、その方法を公開します。

スポンサードリンク

WordPressはとにかく重い

当初、さくらインターネットのVPSにCentOS 5+Apache 2.2.3の環境でWordPressを構築したのですが、とにかく遅いので原因を調べました。
最初は、プロファイラーを使ってプラグインを怪しんだりしました。
WordPressが遅いので対策しています(その1)

その後は、キャッシュ系のプラグインを導入しました。
WordPressが遅いので対策しています(その2)
WP Super CacheとDB Cache Reloadedを導入しました。
キャッシュ系のプラグインは一定の改善がありましたが、新たな記事を投稿する都度に、過去のキャッシュを削除する必要があったり運用が大変でした。
また、レスポンシブ対応のテーマを使っていると、ある記事がスマホで読み込まれた後で、パソコンで同じ記事を開いてみるとスマホ画面のキャッシュが読み込まれたりして、色々と悩まされました。
その後は、.htaccess に設定を追加してGTmetrixの判定を改善しました。
GTmetrixを5分でA判定91%に改善する方法 – WordPressが遅いので対策しています(その3)

 

こうして、かろうじてWordPressサーバーを運用できるようになったものの、サーバーのCPUが100%になってアクセスが出来なくなることがあり、不安と不満だらけでした。

スポンサードリンク

ApacheサーバーのCPU 100%問題

WordPressと直接関係あるのかどうか、時々、サーバーのCPU負荷が100%になることがありました。
Uptime Robotを使ってサーバーを監視していると、サーバーがタイムアウトするとメールが届くようになります。
サーバーがアクセス負荷になった時は、いつも運用でサーバーを再起動していました。
さくらインターネットのVPS(仮想専用サーバー)のサーバー・ネットワークの監視(リソース情報、Uptime Robot)
Apache 2.2.3+MySQL 5.0.95+WordPressでCPU 100%となる
これらの問題を抱えたままでサーバーを運用するのが嫌になってきたので、Apacheをnginxに変更してみました。
CentOS 5のWordPressでApache 2.2.3からnginx 1.6.2へ移行手順

 

かなり安定して運用できるようになったのですが、一度だけサーバーがタイムアウトエラーとなりました。
nginxのエラー(upstream timed out (110: Connection timed out) while reading response header from upstream)

これらの対策を施した結果、現在はすこぶる快適にWordPressが動作しています

スポンサードリンク

nginxでWordPressが圧倒的に速くなった

nginxを導入して2週間ほど立ちますが現状のサーバーの状態をUptime Robotの画面で比較してみます。

Before:Apache 2.2.3+WP Super Cacheなどキャッシュ系ブラグイン

httpプロトコルでサイトを監視している状態です。

image

問題点:

  • 単にhttpでアクセスするだけで5秒から30秒かかる。
  • 管理画面はメニューを遷移するだけで30秒は優にかかる。
  • 新たな記事を更新するたびに、過去のキャッシュをすべて削除しないと更新されない。
  • 記事がスマホで読み込まれた後、パソコンで同じ記事を開いてみるとスマホ画面のキャッシュが読み込まれる。

After:nginx 1.6.2(キャッシュ系プラグインなし)

同様に、httpプロトコルでサイトを監視しています。

image

改善点:

  • 平均1秒以下でサイトにアクセスできている。
  • キャッシュ系プラグインを使っていないのでサイトの更新がすぐに反映される。
  • 管理画面も応答が早い。

nginxの今後

いかがでしょうか?
私は、Apacheでサーバーの運用歴が10年あるのですが、正直、Apacheは多くのものを取り込みすぎているのかなという印象です。
主観的な意見ですが、要望ばっかりを取り入れて結果としてスピードを犠牲にしてしまっているのではないでしょうか。
Apache 2.2.3からnginx 1.6.2に移行したので、Apache 2.4系はテストしていませんが、Apacheはそろそろ卒業かなという気分です。

YahooやGoogleのWEBサーバーの種類とバージョンを調べる

Yahoo Japanも使っているnginx、今後、本格的に普及するのではないかと思います。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

コメント

  1. mak より:

    はじめまして、nginxのことについて調べてたらこのブログにたどり着きました。私もブログでsimplicityを使っているのが、おそらく使用しているvpsサーバーのnginxのせいで、ブログをスマホで表示させたときにパソコン表示になってしまうことが多々あって困っております。今では記事を書いたり、更新したらその都度sshからキャッシュを消すコマンドを送る、という面倒な作業をしております。ブログではキャッシュ系のプラグインは一切つかっておりません。なにか対応策などございましたら、教えていただけないでしょうか。

  2. うらした より:

    私の場合、さくらのVPSにApache 2.2系でWordPressを使っていると、管理画面を開くのに1分ぐらいかかったりして苦労していました。
    キャッシュ系プラグインを入れて対策していました。

    2014年12月のタイミングでApacheを止めて、nginxにしたらこれらの問題はすべて解決しました。現在はキャッシュ系のプラグインは一切使っていません。
    スマホでも速いです。

    従いましてmakさんの状況とは違うようです。もしかしたら、Apache 2.4系を使えば状況は改善するかもしれません。

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です