No Image

nginxにリバースプロキシの設定をした時のメリットとデメリット

正確には障害気味になってペンディング、最終的にはapacheの設定をかなり詰めることにしたのですが。
ちまたで「WordPress+nginx最高!」と言われて久しいのですが、果たしてそうなのでしょうか?
実際に設定して確認してみました。

その前に、実は今までにこの設定はやったことがあります。その記録はブログ内にも残っています。
それからなぜかphp-fpmが頻繁に落ちるようになり、現在はほぼ全てのサーバがapache+preforkでの運用です。
そんな中で急にnginxでの設定をまたやってみようかと思ったのは、とあるサーバで非常に負荷が大きくなるタイミングが頻発しており、調べたところapache+mod_phpによる負荷ということが分かりました。
それでnginxにリバースプロキシで進めてみようと考えました。
その際に参考にしたサイトの一部を紹介しておきます。

これ以外にも結構な数のサイトを参考にしました。
細かい設定はいろいろなサイトで紹介されているので省きます。
Apache Benchでの試験結果(Requests per secondの値)を見ると
 apacheの時 : 3.1[#/sec]
 nginx+リバースプロキシ : 7.2[#/sec]
まあ確かに倍にはなっているのですが・・・不満ですよね、これじゃ。
正確には時々 10〜12 くらいの数値は叩き出します。
しかし大きいのはLoad Averageです。
 apacheの時 : 40〜70
 nginx+リバースプロキシ : 8〜30
もちろんnginxでも時には50くらいまで上がります。
しかし、nginxで特筆すべきは負荷がなくなってからLoad Averageが回復するまでが非常に速い点です。
しかし、問題点もありました。突然、spawn-fcgiが落ちます。
正確には突然Load Averageが急上昇し、spawn-fcgiが停止、ほぼ同じタイミングでサーバが停止します。
ドメインを割り当てず、Apache Bench以外のアクセスがほぼない状態での試験でこの結果です。
その後、apacheをチューニングする方向へ切り替え。
apache+preforkで同じ試験を行い
 Apache Bench : 4〜5[#/sec]
 Load Average : 0.2〜30
まで落とすことが出来ました。
とりあえずApacheでチューニングしたサーバはバックアップ用として残してあり、最終的に稼働させたサーバはnginx+リバースプロキシで組んだものにしました。
個人的にはApacheで組んだサーバの方が安定度は高い印象を持っています。
ただ、nginx+リバースプロキシの方が、一気にアクセスが増えた時には対応出来るのかな、という判断です。
継続的にアクセスがあるのであれば、もしかするとApacheの方が安定しているかも知れませんね。
[tmkm-amazon]4048702270[/tmkm-amazon]

Share this post