現在、2台のサーバーがあり、
WEBサーバー(nginx:FastCGI) → APPサーバー(PHP-FPM)
これを以下の構成に変えたとします。
WEBサーバー(nginx:proxy) → APPサーバー(nginx→PHP-FPM)
CPUの負荷は、後者のほうがAPPサーバーにnginxがある分高くなりますが、ネットワークのトラフィックはどの程度違うものなのでしょうか?
実際に運営されてる方のアドバイスも頂ければと思います。
よろしくお願いします。
後者の場合、nginx:proxyのヒット率に応じてネットワーク負荷が変動します。
また、そのPHPスクリプトが何を返すかによって、WEBサーバとAPPサーバの間のトラフィックが大きく変動します。たとえば画像や音声といった大きなファイルを返すのであれば、現行の構成の方が不利です。
ヒット率が極端に低い場合は、ご想像の通り、現行構成の方に歩があります。
後者のnginxのproxyはあくまでHTTPでAPPサーバーにアクセスするためのもので、キャッシュ等について考えなくて結構です。
純粋にFastCGIとHTTPでどうトラフィックが変わるのか、という話です。
http://blog.martinfjordvald.com/2011/04/optimizing-nginx-for-high-traffic-loads/
http://www.lowendtalk.com/discussion/7289/nginx-php-fpm-unix-socket-or-tcpip-for-fastcgi_pass
http://blog.kubox.info/2010_11_01_archive.html
http://web.showjin.me/nginx_php-fastcgi_setting.html
見た感じ、nginxもphp-fastcgiもオーバーヘッド対策が施されているので、数百万pvまででしたら、無視できる程度には(0.4程度)小さいようです。
回答有り難うございます。参考にさせて頂きます。
No.2の回答通り、キャッシュ等を考慮しないのならほぼ同じです。
同じ程度のオーバーヘッドです
http://developer.cybozu.co.jp/tech/?p=2660
http://jre655.com/2013/03/26/nginx-turning-ubuntu-1/
参考リンク
http://seo-assist.net/archives/22859
http://server-setting.info/centos/apache-nginx-10-proxy.html
http://server-setting.info/centos/nginx-fastcgi-cache.html
遅れましたが回答どうも有り難うございました。
リンク先を見て参考にしたいと思います。
nginxにおけるFast-CGIは単純なソケット通信なので、通信毎にセッションを張るhttp通信よりオーバーヘッドが少ないです。
2013/05/09 20:22:52そうなんですか、なるほど!
2013/05/12 17:58:37コメントどうも有り難うございます。