web-dev-qa-db-ja.com

Pound + HAProxyまたはStunnel + HAProxy

トラフィックの増加を支援し、一定レベルの障害保護を提供するために、既存のサイトインフラストラクチャにロードバランサーを導入することを検討しています。

私が実行しているサイトはログインセクションにSSL証明書を使用しており、この機能を続行する必要があります。バックエンドサーバーは発信元IPアドレスを認識する必要があるため、TCP負荷分散機能を使用できず、ロードバランサーでSSLを終了して挿入できるようにする必要があります。

X-Forwarded-For

ヘッダ。 SSL復号化機能を実装する方法をいくつか見てきました。1つはstunnelを使用し、もう1つはPoundを使用します。私は周りを見回してきましたが、長所/短所がどちらを使用するのかわかりません。誰かがこれについて何か経験があり、彼らの推薦を提供しますか?

ありがとう

3
user1075894

Poundについてはよくわかりませんが、発信元IPアドレスをX-Forwarded-Forヘッダーとして設定するなど、Stunnel + HAProxyを機能させることができました。秘訣は、X-Forwarded-ForパッチでStunnelを使用することです。 Ubuntu 10.04で動作するパッケージは次のとおりです。 https://launchpad.net/~szelcsanyi-gabor/+archive/stunnel4

2
vaughan

これは今では古い質問ですが、HaProxyはSSLをネイティブにサポートするようになり、SSL/TLSでのセットアップと使用がはるかに簡単になりました。

ここを参照してください http://blog.exceliance.fr/2012/09/10/how-to-get-ssl-with-haproxy-getting-rid-of-stunnel-stud-nginx-or-pound/

5
AndyD

私はHAProxyでstunnelを使用したことはありませんが、いくつかの異なる環境でPoundを長年使用しています。

PoundはSSLでうまく機能します。セットアップは非常に簡単で、標準のPEM証明書を使用し、アプリケーションが何を処理しているかを認識できるように十分なSSLデータをWebサーバーに返します。に加えて X-Forwarded-For、あなたはX-Forwarded-Protoしたがって、サイトのhttpバージョンとhttpsバージョンの両方を実行している場合は、セキュリティ警告を発生させないURLをAJAX/XHRコールバックに与えることができます。 Poundは、クライアント側の証明書、ワイルドカード証明書、およびSNIもサポートしています。ですから、それでできないことはあまりありません。

また、重要な機能を提供するためにサードパーティのパッチを必要とするツールを使用して本番サービスを提供することに少し不安を感じています。 stunnelの脆弱性が発見され、その変更によってパッチが破損した場合はどうなりますか?しばらくの間安全でない状態で実行しますか、それともしばらくの間X-Forwarded-IPヘッダーなしで実行しますか?

ポンドがクラッシュしたことはありません。 2005年に修正された奇妙なファイアウォール関連のバグを除いて、それは常に私にとって完璧に動作してきました。私が気に入っている点の1つは、付属の外部制御プログラムです。これにより、サービスやバックエンドを無効/有効にしたり、スティッキーセッションマッピングの現在のリストを表示したりできます。私の知る限り、haproxyにはありません。 poundの poundctl のようなものがあります。

職場でPoundを使用して5つのWebサーバーのクラスターの負荷を分散することに加えて、私はそれを個人サーバーで使用しています。そこで、プライベートIPアドレス( FreeBSD jails )を使用する仮想マシンでWebサーバーを実行します。複数の仮想Webサーバーは、物理ホストで実行されているPoundの背後で負荷分散されます。 stunnel + HAProxyでも同じことができると思いますが、ここでも、非標準のパッチを使用せずに、コミュニティを完全にサポートするソフトウェアをインストールすることを好みます。

2
ghoti

Nginxは、HAProxyのSSLフロントエンド、特にエンダーヘッドロードとしても優れています。 SSLには4コアのCPUを使用しています。

1
npx