編集:高可用性、パフォーマンスサーバーのセットアップに興味があります。
Haproxy vs. nginx vs. Apacheなどに関する記事をたくさん読みましたが、これが私の結論でした。
だから私の質問は、どちらの設定が良いかということです。
私のセットアップは、次のものがインストールされた2つの別々のサーバーになります:ロードバランサー、Webサーバー、PHP、読み取り用のMySQL
MySQL書き込み専用の1つの別個のサーバーは、読み取り用に2つのスレーブMySQLに複製されます。
どう思いますか?
HaproxyとNginxは同じ獣ではありません:haproxyはネットワークのみを扱い、ファイルシステムには決して触れません。静的コンテンツを提供することはありません。一方、NginxやApacheなどの本格的なHTTPサーバーよりも1桁高いパフォーマンスを発揮します。
Haproxyは洗練されたロードバランサーでもあるため、ある程度使用する必要があります。
私の場合、単一のサーバーまたは簡単なセットアップで最大10,000のnginxまたはApacheを同時に使用します。これは、それ自体でうまく機能するためです。より複雑なアーキテクチャ(多くのサーバー、高スループット)の場合、Haproxyのような専用のロードバランサーが望ましいです。
Nginx対Apacheは私見の論点です。適切なサーバー(たとえば、4コアと4G RAM)で両方を10,000の同時クライアントに拡張できます。Nginxがリソースで少し軽い場合、ほとんどの場合、アプリ(Rails、Django、PHP)から違いはありません。 、何でも)はCPU +メモリ負荷の90%です。
私は言うでしょう:あなたが最も快適なウェブサーバーを使用してください。 OTOH Apacheレシピの本当のグーグルはでたらめでいっぱいであり、(大きくて非常に良い)ドキュメントを注意深く読む必要があります。アパッチ恐竜として、私はそれに非常に満足しています。しかし、HTTP Webサーバーを初めて使用する場合、Nginxはそれほど威圧的ではなく、よりクールだと思います。 ApacheとNginxはどちらも非常に信頼性があります。
PHPに関しては、私はワーカーMPMとFastCGIでApacheを使用しています。シンプルで効率的。私はずっと前に http://forge.bearstech.com/trac/wiki/DebianLamp でそれを文書化しました:Debian 6.0ではさらに簡単ですが、私はそれを文書化していません。
あなたのセットアップは私には問題ないようです(Haproxy + ApacheまたはNginx、次にPHP FastCGI経由)。ロードバランサーを個別のノード(SPOFになる)ではなく、すべてのフロントサーバーに配置することをお勧めします)。すべてのノードが同じセットアップを実行するため、より簡単です。IPフェイルオーバーを追加すれば完了です。