[wordpress][nginx] WordPressのために、nginxという選択肢 [1]

ちょっとサーバのお引越しを検討しています。もろもろ遊びたいこともあるのでWebサーバレンタルタイプじゃなくてVPSを借りようと計画しています。そうなると当然全てサーバアプリケーションを自分で導入していかなければならないのですが久しぶりに楽しんでいます。


昔ながらのApache+PHPではなくて最近ではNginx(これは「エンジンエックス」と呼ぶ)というのが流行りだと(流行っているのかはわかりませんが・・)Google先生に教えてもらったのでこの構成で構築を行っていきたいと思います。よくあるJavaアプリケーションサーバのような感じの構成になりそうなので馴染みは深い感じです。 WordPressのチューニングでもこのNginxが登場してきました、このNginxのプロクシ機能を利用してフロントでキャッシュをしてしまおうというのが目論見のようです。

  • 従来のサーバとは異なり、Nginxはリクエストの処理をスレッドに依存していません。その代わりにもっとスケーラブルな(非同期の)イベント駆動アーキテクチャを使用しています。このアーキテクチャはメモリ使用量が少ないだけでなく、最も重要な事として、稼働時のメモリ使用量が予測可能であるということです。

と記されているのが特徴です。node.jsなどと同じイベント型のWebサーバです。Wordpress(PHP)主体のWebサーバで、低価格のVPSにありがちなメモリが少ない環境ではNginxのほうが良さそうです。

  • 軽量高性能なWebサーバ/リバースプロキシであり、同時に電子メール(IMAP/POP3)プロキシである

とされていて何でも出来る凄い奴という感じです。


さて今回はこのような構成で作りたいと思います。

クリップボード01
Nginxの構成 Photo by tokiyan

見てもらうとわかりますが 一段目がリバースプロキシ(キャッシュ機能付き)として受けます。このキャッシュは動的コンテンツに対しても有効なので除外しておきたいものは定義してDirectにバックエンドにつなげるようにします。ここでのバックエンドは “Web Server” として定義されている nginx (8080)が該当します。 WebサーバとしてのNginxは、次に仮想サーバの定義がされているので適切な名前で呼ばれたサーバを振り分けます。 最終的に、WordpressなどのPHPは、FastCGIの仕組みで処理されます。今回は spawn-fcgiを用いてデーモン化しました。選択肢としてはphp-fpmなどもあります。DBは定番のMySQLを選択していこうと思います。


数年前から脳みその時が止まっていたのでちょっとへ~ってな感じでしたが一応構成ができました、次回以降で一つづつ導入や設定について書いていきたいと思います。各アプリケーションごとにチューニングなども必要になってきますのでしばらくは運用しながらと思います。

上部へスクロール