WordPress用サーバを高速化チューニングするときの参考サイトまとめ(Nginx,FastCGI,PHPアクセラレータ,リバースプロキシ)

WordPressを動かす高速・軽量サーバを作る場合、みんながどんなサーバ構成にしているかを自分用にまとめた。

さくらVPSでWordPressを高速に動かすため、サーバ構築したときに参考にしたサイトの構築例を整理しておく。

1. 基本のLAMP環境

色々なサイトがWordPress用のサーバ構築例を書いている。

聞いたことない単語、長い設定ファイルのサンプル、、、
わけが分からなくなる。

そんな時は、LAMPにとってこの部分を話してるとわかれば理解しやすい。

LAMPというのは簡単に言うとWebサイトを動かすサーバでの環境のこと。

LはLinux。OSのことで、さくらVPSのデフォルトOSはCentOS。
AはApache。WebサーバやHTTPサーバのとこで、参考サイトではNginxを使うことが多い。
MはMySQL。データベースのことで、WordPressはMySQLで動いているためMySQLの話になる。
PはPHP(Perl,Ruby)のこと。スクリプト言語のことで、WorPressがPHPで動いているためPHPの話になる。

基本はLAMP環境を構築するだけで、WordPressが動く。

ただ、何もチューニングしていないLAMP環境でWordPressを動かすとアクセスが集中した際に重く・遅くなってしまう。
そのため、LAMP環境を見直し、より高速・軽量なサーバを作成している。

参考サイトでは主に、WebサーバとPHPをチューニングし、リバースプロキシを導入して、サーバを高速・軽量にしていることが多い。

2. NginxとPHP-FPMとPHPアクセラレータとリバースプロキシ

チューニングしようとサーバ構築を見直す際、基本のLAMP構築時には出てこない頻出し、自分は意味不明となった。

その際に注意なのが、Webサーバ(Nginx+PHP-FPM)とPHPアクセラレータとリバースプロキシである。
これらは色々な姿形で登場し、サーバ構築を惑わす。

なので整理しておく。

WebサーバはApacheから変更して、NginxとFastCGIを使用することが多い。
Nginxはとても高速・軽量であり、そのNginx上でPHPを扱うためのFastCGIとセットで使われる(FastCGI自体も高速)。

NginxはWebサーバ単体として使わうことも、後述するリバースプロキシとしても使われることも、その両方として使われることもある。
FastCGIにはPHPだけでも色々な種類(PHP-FPM, spawn-fcgiなど)があり、Ruby用のFastCGIもある。

PHPをチューニングしようとすると、PHP-FPMを使うかPHPアクセラレータを導入するかである。
PHPアクセラレータはPHPをコンパイル済みのキャッシュとしてストックすることで、高速化をはかるPHPエクステンションのこと。
このPHPアクセラレータには色々な種類があり、サーバ構築時には混乱した。

リバースプロキシは、WordPressの記事をキャッシュとして保管し、アクセス時にキャッシュがあればキャッシュを素早く提供し、なければ記事自体をキャッシュする。
Nginxのproxy cache(とfastcgi cache)という機能で、とても高速になるためよく導入される。
サンプルとして載せてくれるNginxの設定ファイルを、とても長く、とても複雑に(みえる)してくれる。
Nginxのリバースプロキシ機能だけを使うことも可能で、Apacheと併用されることもある。

みんな微妙に違う高速・軽量サーバの設定例を残しているので、複数の記事を参考にしているとこんがらがるので注意。

3. さくらVPSでのサーバ構築例

では、本題。
自分がWordPress用の高速・軽量サーバを構築しようとした際に、参考にしたサイトのサーバ構成をまとめておく。

基本的に記事中で確認できるもののみ。

WordPressを100倍速くする! MySQLの調整やnginx proxy cache | KRAY Inc

L : Amazon EC2 smallインスタンス
A : Nginx + FastCGI
M : MySQL
P : APC
リバースプロキシ : proxy cache

こちらの記事では、順序立てて高速化方法を試し、どの方法でどれくらい早くなったかの例を載せてくれてる。
とても参考になりました。

まず初めに、サイトはさくらVPSでなく、Amazon EC2を使っている。
ただ大きな違いはないだろうと思い、設定を参考にした。

Webサーバ部分は、Apacheの代わりにNginxとFastCGIを使っている。
このFastCGIがPHP-FPMなのかどうかは書かれてなかった。

PHPアクセラレータとしてはAPCを使用している。

こちらはMySQLのクエリ最適化が図られている

さくらVPSのWordPressをチューニングして30倍高速化した方法 – 原宿・表参道.jp

L : さくらVPS1G CentOS5.5
A : Nginx + spawn-fcgi
M : MySQL
P : APC
リバースプロキシ : proxy cache

こちらのサイトは、最初に紹介したWordPressを100倍速くする! MySQLの調整やnginx proxy cache | KRAY Incを参考にしたとのこと。
なので、設定がまったく同じかと思えばそうでもなかった。

WebサーバにはNginxとspawn-fcgiを使っている。
FastCGIとしてspawn-fcgiを使っている日本語記事があまりなく珍しい。

Nginxはフロントとバックエンドに使われているという表記がある。
フロントというのがリバースプロキシのことであり、バックエンドというのがspawn-fcgiを使っている部分である。

PHPアクセラレータにはAPCを使用している。

さくらVPSとnginxリバースプロクシで最速WordPressブログを作る方法(ベンチマーク付き) | さくらたんどっとびーず

L : 旧さくらVPS500M
A : Nginx + FastCGI(spawn-fcgi?オリジナル?)
M : MySQL
P : eAccelerator
リバースプロキシ : proxy cache

このサイトはNginxについてとても詳しく説明されている。
設定ファイルについてもきれいで見やすい。

WebサーバはNginxとFastCGI。
spawn-fcgiを使っているのか、オリジナルのFastCGIを用意して使っているのかわからなかった。

PHPアクセラレータにはeAcceleratorを使用している。
初めて出てきたね。

このサイトではPHPやNginxをビルドしてインストールしている。
ビルドからインストールすると余計なものが入らず、より軽量となるので、徹底してる。

[技術] nginxを利用した、高速サーバー構築マニュアル – Photoshop VIP

L :
A : Apach + Nginx
M :
P :
リバースプロキシ : proxy cache

ApacheをWebサーバに、Nginxをリバースプロキシのみに使っているのがこちらのサイト。

すでにApacheが入っている環境で、リバースプロキシのみを使って高速化したいという要望なら、この記事が参考になる。
ただ、さくらVPSのようなメモリが限られているサーバの場合は、ApacheとNginx両方にメモリを消費するため、FastCGIが推奨されると、はてなブックマークコメントに書いてあった。

さくらVPS512で、Yahoo!砲食らっても WordPress を平常運転させるための設定 | dogmap.jp

L : 旧さくらVPS500M
A : Nginx + PHP-FPM
M :
P : eAccelerator
リバースプロキシ : proxy cache

こちらのサイトは、AWSのWordPress用高速ホスティングである網元のさくらVPS版を紹介している。
自分は主にこちらを参考にしている。

WebサーバはNginxとPHP-FPMを使用。
最近だとPHPのFastCGIはPHP-FPMがナウいらしい。

ただ、設定ファイルがバーンと貼り付けられているだけなので、自分のような初心者には説明不足だった。。

Nginxを使ったもう一歩進んだWordPressチューニング | cloudrop

L :
A : Nginx + PHP-FPM
M :
P :
リバースプロキシ : fastcgi cache

このサイトはNginxのリバースプロキシ機能についてとても詳しく説明されている。

特にfastcgi cacheの使い方について詳しく、proxy cahceとfastcgi cacheの2つがあることを初めて知った。
この記事を読んで、fastcgi cacheを使おうと思った。

fastcgi cacheは厳密にいうとリバースプロキシ機能ではないらしく、色々混乱した。

Nginx のFastCGIキャッシュ(fastcgi cache )を使ってみた | レンタルサーバー・自宅サーバー設定・構築のヒント

L :
A : Nginx + PHP-FPM
M :
P :
リバースプロキシ : fastcgi cache

この記事、というかこのサイトはサーバ構築についてとてつ詳しく説明されている。
どの記事も新しく、最近のナウいサーバ構築方法について載ってるので、一番オススメ!

Nginxのfastcgi cacheを使うとして、どうしたらいいんだろうと考えて色々な記事を探していたらたどり着いた。

他のLやAやMやPの部分についても詳しく書いてあるので実際に見てくれ!

コメント

  1. […] WordPress用サーバを高速化チューニングするときの参考サイトまとめ […]

タイトルとURLをコピーしました