ブログ開設当初からWordPressの遅さに悩まされていました。
WebサーバーをAacheからnginxに変更して、遅さは解消したのでその手順報告です。
nginxを使わず、Apacheで運用していた時は、とにかく重かったです。
管理画面にログインするのに20秒ぐらいかかるし、管理画面のメニューから遷移するのに30秒ぐらい普通にかかっていました。
極めつけは管理画面からのログアウトで、ログアウトを押してもグルグルと回って延々とログアウト出来ないことがよくありました。
あまりの遅さに管理画面を操作するのが億劫になっていました。
現在は、nginxを使うことにより、その悩みから完全に解放されていますので、その方法を公開します。
目次
WordPress はとにかく重い
当初、さくらインターネットのVPSに
CentOS 5+Apache 2.2.3の環境でWordPressを構築したのですが、
とにかく遅いので原因を調べました。
最初は、プロファイラーを使ってプラグインを怪しんだりしました。
その後は、キャッシュ系のプラグインを導入しました。
WP Super CacheとDB Cache Reloadedを導入しました。
キャッシュ系のプラグインは一定の改善がありましたが、新たな記事を投稿する都度に、過去のキャッシュを削除する必要があったり運用が大変でした。
また、レスポンシブ対応のテーマを使っていると、ある記事がスマホで読み込まれた後で、パソコンで同じ記事を開いてみるとスマホ画面のキャッシュが読み込まれたりして、色々と悩まされました。
その後は、.htaccess に設定を追加してGTmetrixの判定を改善しました。
こうして、かろうじてWordPressサーバーを運用できるようになったものの、サーバーのCPUが100%になってアクセスが出来なくなることがあり、不安と不満だらけでした。
ApacheサーバーのCPU 100%問題
WordPressと直接関係あるのかどうか、時々、サーバーのCPU負荷が100%になることがありました。
Uptime Robotを使ってサーバーを監視していると、サーバーがタイムアウトするとメールが届くようになります。
サーバーがアクセス負荷になった時は、いつも運用でサーバーを再起動していました。
これらの問題を抱えたままでサーバーを運用するのが嫌になってきたので、Apacheをnginxに変更してみました。
かなり安定して運用できるようになったのですが、一度だけサーバーがタイムアウトエラーとなりました。
これらの対策を施した結果、現在は
すこぶる快適にWordPressが動作しています。
nginxでWordPressが圧倒的に速くなった
nginxを導入して2週間ほど立ちますが現状のサーバーの状態をUptime Robotの画面で比較してみます。
Before:Apache 2.2.3 + WP Super Cache などキャッシュ系ブラグイン
httpプロトコルでサイトを監視している状態です。
問題点:
単にhttpでアクセスするだけで5秒から30秒かかる。
管理画面はメニューを遷移するだけで30秒は優にかかる。
新たな記事を更新するたびに、過去のキャッシュをすべて削除しないと更新されない。
記事がスマホで読み込まれた後、パソコンで同じ記事を開いてみるとスマホ画面のキャッシュが読み込まれる。
After:nginx 1.6.2 (キャッシュ系プラグインなし)
同様に、httpプロトコルでサイトを監視しています。
改善点:
平均1秒以下でサイトにアクセスできている。
キャッシュ系プラグインを使っていないのでサイトの更新がすぐに反映される。
管理画面も応答が早い。
nginx の今後
いかがでしょうか?
私は、Apacheでサーバーの運用歴が10年あるのですが、正直、Apacheは多くのものを取り込みすぎているのかなという印象です。
主観的な意見ですが、要望ばっかりを取り入れて結果としてスピードを犠牲にしてしまっているのではないでしょうか。
Apache 2.2.3からnginx 1.6.2に移行したので、Apache 2.4系はテストしていませんが、Apacheはそろそろ卒業かなという気分です。
Yahoo Japanも使っているnginx、今後、本格的に普及するのではないかと思います。
WordPressのおすすめ本
↓WordPressのおすすめ本はコチラ
コメント
はじめまして、nginxのことについて調べてたらこのブログにたどり着きました。私もブログでsimplicityを使っているのが、おそらく使用しているvpsサーバーのnginxのせいで、ブログをスマホで表示させたときにパソコン表示になってしまうことが多々あって困っております。今では記事を書いたり、更新したらその都度sshからキャッシュを消すコマンドを送る、という面倒な作業をしております。ブログではキャッシュ系のプラグインは一切つかっておりません。なにか対応策などございましたら、教えていただけないでしょうか。
私の場合、さくらのVPSにApache 2.2系でWordPressを使っていると、管理画面を開くのに1分ぐらいかかったりして苦労していました。
キャッシュ系プラグインを入れて対策していました。
2014年12月のタイミングでApacheを止めて、nginxにしたらこれらの問題はすべて解決しました。現在はキャッシュ系のプラグインは一切使っていません。
スマホでも速いです。
従いましてmakさんの状況とは違うようです。もしかしたら、Apache 2.4系を使えば状況は改善するかもしれません。