ソフト ロードの場合、主流のソリューションには LVS、Haproxy、Nginx が含まれていることは誰もが知っています。では、Haproxy と Nginx のどちらをどのように選択すればよいのでしょうか?この質問に答える前に、私の個人的な経験に基づいて彼らの特徴について話しましょう!
Haproxy 機能
TCP および HTTP プロトコルをサポートし、ネットワーク レイヤ 4 およびレイヤ 7 で動作します セッション共有、Cookie ガイダンスのサポート URL ヘルス検出のサポート 8 つのロード バランシング戦略のサポート ハートビート検出のサポート #Nginx の機能ネットワーク層 7 で動作する Http プロトコルのサポート
ポートの健全性検出のサポート
強力な通常のマッチング ルールのサポート
WebSocket プロトコルのサポート
HTTP キャッシュのサポート
説明:HTTP プロトコルでは、Haproxy の処理効率が Nginx よりも高くなります。したがって、特別な要件や一般的なシナリオがない場合は、HTTP プロトコルのロードに Haproxy を使用することをお勧めします。しかし、Web であれば Nginx を使用することをお勧めします! つまり、誰もがそれぞれの使用シナリオの特性に基づいて合理的な選択を行うことができます!
前回誰かが私に質問しました: Nginx または Haproxy の接続数は「65535」の「呪い」を打ち破ることができますか?実際、Nginx や Haproxy の動作原理を理解していないため、誰もがそのような疑問を抱いています。
以下では、Linux サーバーを例として、この 2 つの間の理論上の最大接続数を説明します。
Linux 上の Nginx の理論上の最大接続数正しいリバース プロキシ: 最大接続数 = work_processes * work_connections
リバース プロキシ: 最大接続数 = work_processes * work_connections / 4 注: work_connections は、1 つのプロセスが接続できる最大接続数を指します。ハンドル。サーバーに 8 コアがあると仮定します。worker_connections =
65535 (カスタマイズ可能ですが、1 つの接続は 1 つのファイル記述子を使用することと同等であるため、ファイル記述子の最大数を超えることはできません)
最大上記 2 つの場合の接続数 (理論値) は次のとおりです: 8 * 65535 および 8 * 65535 /4
最大接続数 = maxconn(global |defaults | listen )
Nginx 関連の技術記事の詳細については、
Nginx 使用法チュートリアル以上がnginxとhaproxyの違いの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。