WordPressの遅さ対策:Apache 2.2 からnginx 1.6に変更して遅さは改善し、速くなった

WordPress

ブログ開設当初からWordPressの遅さに悩まされていました。

WebサーバーをAacheからnginxに変更して、遅さは解消したのでその手順報告です。

nginxを使わず、Apacheで運用していた時は、とにかく重かったです。

管理画面にログインするのに20秒ぐらいかかるし、管理画面のメニューから遷移するのに30秒ぐらい普通にかかっていました。

極めつけは管理画面からのログアウトで、ログアウトを押してもグルグルと回って延々とログアウト出来ないことがよくありました。

あまりの遅さに管理画面を操作するのが億劫になっていました。

現在は、nginxを使うことにより、その悩みから完全に解放されていますので、その方法を公開します。

スポンサーリンク
スポンサーリンク

WordPress はとにかく重い

当初、さくらインターネットのVPSに

CentOS 5+Apache 2.2.3の環境でWordPressを構築したのですが、

とにかく遅いので原因を調べました。

最初は、プロファイラーを使ってプラグインを怪しんだりしました。

WordPressが遅い対策  P3(plugin performance profiler) によるパフォーマンス分析
私の使っているWordPressがとにかく重いので対策を行いました。 サイトのスピード測定を行う 手始めに現状の...

その後は、キャッシュ系のプラグインを導入しました。

WordPressが遅い対策(キャッシュプラグイン) W3 Total Cache, WP Super Cache, DB Cache Reloaded Fix
WordPressの速度改善でキャッシュのプラグインがあります。 有名なものはW3 Total CacheとW...

WP Super CacheとDB Cache Reloadedを導入しました。

キャッシュ系のプラグインは一定の改善がありましたが、新たな記事を投稿する都度に、過去のキャッシュを削除する必要があったり運用が大変でした。

また、レスポンシブ対応のテーマを使っていると、ある記事がスマホで読み込まれた後で、パソコンで同じ記事を開いてみるとスマホ画面のキャッシュが読み込まれたりして、色々と悩まされました。

その後は、.htaccess に設定を追加してGTmetrixの判定を改善しました。

WordPressが遅いので対策  GTmetrixのスコアを5分でA判定91%に改善する方法
今回、GTmetrixのPage Speed GradeがC(71%)からA(91%)に画期的に改善したのでその方法...

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

ApacheサーバーのCPU 100%問題

WordPressと直接関係あるのかどうか、時々、サーバーのCPU負荷が100%になることがありました。

Uptime Robotを使ってサーバーを監視していると、サーバーがタイムアウトするとメールが届くようになります。

サーバーがアクセス負荷になった時は、いつも運用でサーバーを再起動していました。

さくらインターネットのVPS(仮想専用サーバー)のサーバー・ネットワークの監視(リソース情報、Uptime Robot)
当ブログはさくらインターネットのVPS(仮想専用サーバー)を使っているのですが、時々、CPU100%負荷になってアクセスが遅くなります。 ...

Apache 2.2.3+MySQL 5.0.95+WordPressでCPU 100%となる
Apache 2.2.3+MySQL 5.0.95+WordPressでCPU 100%となるので、原因を調べてみま...

これらの問題を抱えたままでサーバーを運用するのが嫌になってきたので、Apacheをnginxに変更してみました。

CentOS 5のWordPressでApache 2.2.3からnginx 1.6.2へ移行手順
当ブログはさくらインターネットのVPS(仮想専用サーバー)でCentOS 5を使っていますが、この度、Apache ...

かなり安定して運用できるようになったのですが、一度だけサーバーがタイムアウトエラーとなりました。

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サーバーの種類とバージョンを調べる
接続先のWEBサーバーを調べる 接続する先のWEBサーバーの種類とバージョンを調べるには以下のコマンドで調べることができます。 wget...

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

WordPressのおすすめ本

↓WordPressのおすすめ本はコチラ

WordPressのおすすめ本

コメント

  1. mak より:

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

  2. うらした より:

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

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

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