「WordPress“1000倍”高速化」チューニング 第四弾──Webサーバを「Nginx」に切り替える:とにかく速いWordPress(8)(2/2 ページ)
エンタープライズ用途での利用が増えている「WordPress」の高速化チューニングテクニックを解説する本連載。今回は、「1000倍高速化」を目指すチューニングテクニックの第四弾「WebサーバをNginxに切り替えて高速化する」方法を紹介します。
Nginx+HHVM構成を整え、ベンチマークを計測
WordPressを動作させるバーチャルホストの設定も行います。次の内容を「/etc/nginx/conf.d/http.conf」として保存します。なお、server_nameの行は、自身の環境のホスト名に書き換えてください。
server { listen 80; server_name ec2-xxx.xxx.compute.amazonaws.com; root /var/www/html; index index.php index.html index.htm; location / { try_files $uri $uri/ /index.php?$args; } location ~* /\. { deny all; } location ~ [^/]\.php(/|$) { fastcgi_split_path_info ^(.+?\.php)(/.*)$; if (!-f $document_root$fastcgi_script_name) { return 404; } fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }
Nginxを再起動します。
[root@ip ~]# systemctl restart nginx
これで、Nginx+HHVM構成が整いました。ブラウザをリロードすると、WordPressのトップページが表示されます。これまでと同様にFirebugでページのロード時間を計測すると、筆者の環境では、およそ「16ms」前後になりました。前述した通り、このテストによる値はこれでほぼ上限です。
同じくこれまでと同様に、abコマンドでのベンチマークを数回を繰り返します。
[root@ip ~]# ab -n 300 -c 30 http://ec2-xxx.xxx.compute.amazonaws.com/
筆者の環境では、1秒当たりの同時アクセス数を示すRequests per secondの値が「205.20」となりました。Apache+HHVM構成に比べてさらに数%パフォーマンスが向上しました。
参考までに、同じベンチマークをNginx+PHP 7構成でも測定してみましょう。
[root@ip ~]# systemctl disable hhvm [root@ip ~]# systemctl stop hhvm [root@ip ~]# systemctl enable php-fpm [root@ip ~]# systemctl start php-fpm [root@ip ~]# ab -n 300 -c 30 http://ec2-xxx.xxx.compute.amazonaws.com/
この場合は、ページのロード時間がおよそ「16ms前後」、Requests per secondは「151.07」にとどまりました。しかし、Nginxに代えることで、これまでのApache+PHP 7構成よりもパフォーマンスが向上することも確認できました。
チューニング内容 | ページのロード時間 (デフォルト環境比) |
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%) |
今回までのチューニングで、チューニングなしの初期状態と比べて「約18.2倍」高速になりました。
いよいよ、“1000倍高速化チューニング”の仕上げに入っていきます。次回は、WordPressのプラグイン「WP SiteManager」を用いたページキャッシュを導入し、デフォルト環境比で「約228倍」まで高速化するチューニングを施していきます。
筆者紹介
中村けん牛
1971年栃木県生まれ。中学1年生で電波新聞社の『マイコンBASICマガジン』にプログラムを寄稿して以来、プログラミング歴30年。早稲田大学法学部を卒業後、野村證券に入社。公認会計士第二次試験合格。2002年にプライム・ストラテジー株式会社を設立、代表取締役に就任する。2005年にPT. Prime Strategy Indonesiaを設立して以来、アジアでのITビジネスに携わる。執筆監訳書籍に『WordPressの教科書』シリーズ(SBクリエイティブ)、『詳解 WordPress』『WordPressによるWebアプリケーション開発』(ともにオライリー・ジャパン)などがある。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- 容易にWebサービスを高速化できるNginxを使いこなすための秘訣とは
高速で軽量なOSSのWebサーバとして注目されている「Nginx」。使いこなすための課題や有効なアーキテクチャ構成などをサイボウズでの導入事例と共に明かす。 - 高速・軽量・高機能……Nginxの基礎知識
処理能力の高さなどを理由に、近年、大規模サイトを中心に急速にシェアを拡大しているWebサーバー「Nginx」。この連載では、その特徴と魅力を分かりやすく紹介します。 - WordPress自体のチューニングが必要な理由と高速化の基本的な考え方
企業のCMSサイトやオウンドメディアなどエンタープライズ用途での利用が増加しているWordPressの高速化について解説する連載。初回は、WordPressの高速化が求められる背景や、WordPress高速化の基本的な考え方であるページのロード時間とその構成要素、1秒当たりの同時アクセス数について解説します。