web-dev-qa-db-ja.com

SSLなしでhttp2を使用したnginx通信を使用したnginx

Nginx-proxyとnginx-serverのdockerコンテナを用意しました。

_client browser < > nginx-proxy_は、proxy_passを介したhttp2および443です。

_nginx-proxy < > nginx-server_はhttp1ですが、http2に移動したいのですが、SSLを使用していません。どちらも同じサーバー上にあるため、トラフィックを暗号化するメリットはありません。

私はnginxドキュメントを読んで、彼らはそれがsslなしでhttp2をサポートすると言っています。そのため、nginx-server vhostのlistenディレクティブに_80 http2;_を追加しました。

ただし、ブラウザはWebサイトを表示する代わりに、次の内容のファイルをダウンロードします。

_0000 1204 0000 0000 0000 0300 0000 8000
0400 0000 0000 0500 ffff ff00 0004 0800
0000 0000 7fff 0000 0000 0807 0000 0000
0000 0000 0000 0000 01
_

それはひどく この問題 のように見えますが、私のものは_browser <> nginx_の問題ではなく_nginx <> nginx_の問題です。 nginxがsslなしでhttp2をサポートしているとドキュメントが言うので、それは存在すべきではありません。

16進ダンプが_malformed packet_と言うので、nginx-proxyにバックエンドnginx-serverがhttp2を話すことを理解させるにはどうすればよいですか。

この問題 は不可能であり、実装されないことを示しています。

9
user113400

同じサーバー上のソフトウェア間のレイテンシは非常に低いため、これを実行するメリットは最小限になります。それが非常に難しいか不可能であることを考えると、私はこれにあなたの時間を費やさないでしょう。

1
Tim