web-dev-qa-db-ja.com

http2を使用したTomcat8.5でのApachemod_proxy

Http2プロトコルでApacheTomcat 8.5の前でmod_proxyを使用することは可能ですか?はいの場合は、構成例を見るとよいでしょう。

編集

具体的には、クライアントとサーバーの間でhttp2を使用すること(Apache httpd)、およびApache httpdApache Tomcatの間のajpでデータストリームを続行することは可能であり、推奨されますか?

編集2

この回答は、トピックに関する詳細を提供します。

https://stackoverflow.com/questions/35697681/can-we-use-Apache-to-deliver-http-2-connection-for-a-Java-application-server

3
yglodt

Apachehttpdは2.4.21からHTTP/2プロキシのサポートを追加しましたが、このモジュールは現時点ではまだかなり変更されているため、最新(執筆時点では2.4.27)を実行することをお勧めします。

TomcatはTomcat9にHTTP/2サポートを追加しました: https://readlearncode.com/configure-Tomcat-9-for-http2/

したがって、理論的には、これらのバージョンにアップグレードする(そして、HTTP/2に必要なOpenSSL1.0.2以降をインストールする)場合は、これらすべてがうまく調和するはずです。

ただし、実際にはまだすべて非常に新しいため、バグが発生する可能性があります。正直なところ、HTTP/2の最大のメリットは、クライアントからサーバーへの接続など、待ち時間の長い接続です。 mod_proxyを使用したApacheからTomcatへのサーバー間接続では、ゲインが少なくなります。

したがって、これらがどれほど新しいかを考えると、ApacheWebサーバー(またはHTTP/2をサポートする他のWebサーバー)でHTTP/2を使用し、mod_proxyを使用してHTTP /1.1またはAJP経由でTomcatに接続することをお勧めします。これにより、完全なエンドツーエンドのHTTP/2を取得するためにすべてをアップグレードする手間やリスクなしに、HTTP/2のパフォーマンスの向上のほとんどが得られます。

5
Barry Pollard

2017年7月の時点で、Apache mod_proxyはHTTP/2.0プロトコルをサポートしていません。 mod_proxy_http21 モジュールがありますが、まだ実験段階です。

2番目の編集で提供されたStackOverflowの回答で詳しく説明されているように、mod_http2を使用してApache側でHTTP/2.0サポートを有効にし、HTTP /1.1またはAJPを使用してTomcatサーバーと通信できます。しかし、HTTP /2.0の最大の機能の1つである多重化が失われます。

1
iMax-pp