HTTP / 2.0を実行できるバックエンドWebサーバーの前で、nginxをreverse-ssl-proxyとして使用します。
nginxがHTTP / 2.0ではなくHTTP / 1.1を介してバックエンドサーバーにリクエストをプロキシすることに気付きました。代わりに、暗号化されていないHTTP / 2.0接続を使用するようにnginxに指示することはできますか?これによりパフォーマンスが向上しますか?
HTTP / 2.0を実行できるバックエンドWebサーバーの前で、nginxをreverse-ssl-proxyとして使用します。
nginxがHTTP / 2.0ではなくHTTP / 1.1を介してバックエンドサーバーにリクエストをプロキシすることに気付きました。代わりに、暗号化されていないHTTP / 2.0接続を使用するようにnginxに指示することはできますか?これによりパフォーマンスが向上しますか?
回答:
これを見つけました:https : //trac.nginx.org/nginx/ticket/923
近い将来、プロキシモジュールにHTTP / 2サポートを実装する計画はありません。
チケットで参照されるメールからの抜粋:
HTTP / 2の主な利点は、単一の接続内で多くの要求を多重化できることです。したがって、[ほぼ]同時要求の数の制限がなくなります。独自のバックエンド。さらに、HTTP / 2をバックエンドに使用すると、複数の接続ではなく単一のTCP接続が使用されるため、状況がさらに悪化する場合があります。
悲しいことにnginxはhttps://www.nginx.com/blog/http2-module-nginx/#QandAから参照されるhttp / 2バックエンドサーバーへのプロキシをサポートしていません
Q:アップストリーム側でもHTTP / 2をサポートしますか、それともクライアント側でHTTP / 2のみをサポートしますか?
A:現時点では、クライアント側でのみHTTP / 2をサポートしています。proxy_passでHTTP / 2を構成することはできません。[編集者–この投稿の元のバージョンでは、この文は「proxy_passでHTTP / 2を設定できます」と誤って転記されていました。これにより生じた混乱についておWeび申し上げます。
しかし、バックエンド側のHTTP / 2のポイントは何ですか?ベンチマークからわかるように、アップストリーム接続などの低遅延ネットワークのHTTP / 2にはあまりメリットがないためです。
また、NGINXにはキープアライブモジュールがあり、キープアライブキャッシュを構成できます。HTTP / 2の主なパフォーマンス上の利点は、追加のハンドシェイクを排除することですが、すでにキープアライブキャッシュを使用してこれを行う場合、アップストリーム側でHTTP / 2は必要ありません。