「NginxのFastCGIキャッシュ」を導入して「1127倍」まで高速化する──「WordPress“1000倍”高速化」チューニング総仕上げとにかく速いWordPress(10)(1/2 ページ)

エンタープライズ用途での利用が増えている「WordPress」の高速化チューニングテクニックを解説する本連載。今回は、「1000倍高速化」を目指すチューニングテクニックの総仕上げです。「NginxのFastCGIキャッシュを導入」して、約1127倍まで高速化します。

» 2016年05月16日 05時00分 公開
[中村けん牛プライム・ストラテジー]

連載バックナンバー

 前回は、WordPressのプラグイン「WP SiteManager」を用いたページキャッシュを導入して、チューニングをしない初期状態から「約228倍」までWordPressを高速化できました。

 今回は、「WordPress1000倍高速化チューニング」の総仕上げを行います。「NginxのFastCGIキャッシュ」を導入して、「約1127倍」までチューニングしていきましょう。

photo WordPressの日本語ローカルサイト

 まず、本テクニックはこれまで解説してきたチューニングの続きとなるので、この記事からご覧の方は、連載バックナンバーから、「約228倍」まで高速化チューニングをしておいてください。

チューニング内容 ページのロード時間
(デフォルト環境比)
1秒当たりの同時アクセス数
「Requests per second」(デフォルト環境比)
デフォルト環境 176ms 11.24
APCの導入
 チューニング方法をおさらい
70ms(約251%) 29.20
OPcache+APCuを導入
 チューニング方法をおさらい
66ms(約266%) 30.51
MariaDBの設定を調整
 チューニング方法をおさらい
64ms(約275%) 31.82
翻訳アクセラレータを導入(キャッシュ)
 チューニング方法をおさらい
53ms(約332%) 39.29
翻訳アクセラレータを導入(翻訳を停止)
 チューニング方法をおさらい
36ms(約488%) 56.78
gzip圧縮を用いる
 チューニング方法をおさらい
35ms(約502%)
Tunedの調整
 チューニング方法をおさらい
34ms(約517%) 58.47
event MPM+php-fpm構成に変更
 チューニング方法をおさらい
33ms(約537%) 60.79
PHP 5.6+OPCache+APCuを導入
 チューニング方法をおさらい
32ms(約550%) 61.84(約550.2%)
PHP 7+OPCache+APCuを導入
 チューニング方法をおさらい
18ms(約977.7%) 148.08(約1250.6%)
HHVMを導入
 チューニング方法をおさらい
16ms(約1100%) 195.05(約1690.8%)
Nginxを導入(Nginx+PHP 7)
 チューニング方法をおさらい
16ms(約1100%) 151.07(約1344%)
Nginxを導入(Nginx+HHVM)
 チューニング方法をおさらい
16ms(約1100%) 205.20(約1825.6%)
WP SiteManagerでページキャッシュを導入
 チューニング方法をおさらい
(測定不能) 2566.17(約22830%)

Nginxの「FastCGIキャッシュ」を導入する

 「WordPress1000倍高速化チューニング」の総仕上げをしていきましょう。今回はミドルウェアのページキャッシュである、Nginxの「FastCGIキャッシュ」を導入することで高速化します。

 こちらは、「WordPressのパーマリンクが有効であることを前提」に実施します。パーマリンクの設定は、WordPressの管理画面にログインして、「設定」→「パーマリンク設定」の共通設定で「日付と投稿名」を選択して、「変更を保存」を行ってください。

 コンソールに戻って、Nginxの設定ファイルを修正します。FastCGIキャッシュの基本設定のため、「/etc/nginx/nginx.conf」を以下のように修正します。

  1. (略)
  2. http {
  3. include /etc/nginx/mime.types;
  4. default_type application/octet-stream;
  5. log_format main '$remote_addr - $remote_user [$time_local] "$request" '
  6. '$status $body_bytes_sent "$http_referer" '
  7. '"$http_user_agent" "$http_x_forwarded_for"';
  8. access_log /var/log/nginx/access.log main;
  9. sendfile on;
  10. #tcp_nopush on;
  11. keepalive_timeout 3;
  12. gzip on;
  13. server_names_hash_bucket_size 128;
  14. fastcgi_cache_path /var/cache/nginx/wordpress levels=1:2 keys_zone=wpcache:30m max_size=512M inactive=600m;
  15. include /etc/nginx/conf.d/*.conf;
  16. }
リスト:「/etc/nginx/nginx.conf」の修正箇所(14行目)

 「/etc/nginx/conf.d/http.conf」に具体的なキャッシュの条件を記述します。

  1. (略)
  2. location ~ [^/]\.php(/|$) {
  3. fastcgi_split_path_info ^(.+?\.php)(/.*)$;
  4. if (!-f $document_root$fastcgi_script_name) {
  5. return 404;
  6. }
  7. fastcgi_pass 127.0.0.1:9000;
  8. fastcgi_index index.php;
  9. fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
  10. include fastcgi_params;
  11. set $do_not_cache 0;
  12. if ($request_method = POST) {
  13. set $do_not_cache 1;
  14. }
  15. if ($query_string != "") {
  16. set $do_not_cache 1;
  17. }
  18. if ($http_cookie ~* "comment_author|wordpress_[a-f0-9]+|wp-postpass|wordpress_no_cache|wordpress_logged_in") {
  19. set $do_not_cache 1;
  20. }
  21. if ($request_uri ~* "(/wp-admin/|/xmlrpc.php|/wp-(app|cron|login|register|mail).php|wp-.*.php|/feed/|index.php|wp-comments-popup.php|wp-links-opml.php|wp-locations.php|sitemap(_index)?.xml|[a-z0-9_-]+-sitemap([0-9]+)?.xml)") {
  22. set $do_not_cache 1;
  23. }
  24. fastcgi_cache wpcache;
  25. fastcgi_cache_key "$request_method:$scheme://$host$request_uri";
  26. fastcgi_cache_valid 200 60m;
  27. fastcgi_no_cache $do_not_cache;
  28. fastcgi_cache_bypass $do_not_cache;
  29. add_header X-F-Cache $upstream_cache_status;
  30. }
  31. (略)
リスト:「/etc/nginx/conf.d/http.conf」の修正箇所(11行目~30行目)
       1|2 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.

スポンサーからのお知らせPR

Linux �ス�ス OSS 髫ェ蛟�スコ荵斟帷ケ晢スウ郢ァ�ュ郢晢スウ郢ァ�ー

隴幢スャ隴鯉ス・隴帷」ッ菫」

注目のテーマ

4AI by @IT - AIを作り、動かし、守り、生かす
Microsoft & Windows最前線2025
AI for エンジニアリング
ローコード/ノーコード セントラル by @IT - ITエンジニアがビジネスの中心で活躍する組織へ
Cloud Native Central by @IT - スケーラブルな能力を組織に
システム開発ノウハウ 【発注ナビ】PR
あなたにおすすめの記事PR

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。