web-dev-qa-db-ja.com

バックエンド間のhttpキープアライブをサポートするNginxの代替手段は何ですか?

最近、Nginxを使用してバックエンド接続を永続的に保つ方法について質問しましたが、とにかくそれが不可能であることがわかりました。

これは、キープアライブ要求の機能がまだないHTTP /1.0プロキシです。 (その結果、バックエンド接続はすべての要求で作成および破棄されます。)

今は問題なく動作しますが(クライアントとNginx間の接続は維持され、結果はまったく同じであるため)、新しいリクエストを受信するたびに新しい接続を確立したくありません。 UNIXドメインソケット。

では、そのような接続を実現するために、どのソフトウェア(できればオープンソースで、構成するのが面倒ではない)をお勧めしますか?

4
felace

彼らはそれをhaproxyに入れることに取り組んでいると思います。

LANでのtcpセットアップ(=低遅延)は通常問題ではないことを覚えておいてください。最近のすべてのオペレーティングシステムではこれがうまく機能しています。確かに、バックエンド接続を開くだけの方が良いでしょうが、それはフロントエンド(この場合はnginxまたはhaproxy)のコードを驚くべき方法ではるかに複雑にします。

1
Joris

特にSSLが必要ない場合、またはHTTPSサービス用に443で直接何か他のものを実行する場合は、ワニスに投票します。 http://www.varnish-cache.org/

0
diq

これは、nginxの背後で実行されているアプリケーションの種類によって異なります。 Unicornを背後に置いて、UNIXソケットを使用して実行しました。それは魅力のように機能しました。今、私はHTTPを介するトリニダードでJrubyアプリケーションを実行しています。これは一種の動作です。 Tomcatでバックエンドアプリを実行する場合に使用できるはずのnginx用のmod_ajpがあります。 AfaikはAJPの持続的接続を維持します。

0
Wouter de Bie

Apache Traffic Server はHTTP 1.1プロキシであり、私が覚えているように、フロントエンドとバックエンドの両方です。また、キャッシュと静的Webサーバー。

0
rmalayter