问题描述
我们使用 tomcat 作为反向代理服务器,它在内部将我们的 html/css/js 请求转发到部署在 Nginx 服务器上的应用程序。我们已经在 tomcat reverseproxy 上启用了 http2 和 gzip 配置,如下所示。
<Connector
SSLEnabled="true"
acceptCount="25"
address="10.xx.x.x"
ciphers="TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,TLS_RSA_WITH_AES_256_CBC_SHA256,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_128_CBC_SHA"
clientAuth="want"
compressibleMimeType="text/html,text/xml,text/json,text/javascript,text/css,text/plain,application/json,application/javascript,application/xml,application/xml+xhtml,application/swagger-v20+json,application/swagger-v20+yaml"
compression="on"
compressionMinSize="1024"
connectionTimeout="30000"
disableuploadTimeout="true"
keyAlias="tomcat"
maxHttpHeaderSize="65536"
maxThreads="200"
minSpareThreads="5"
noCompressionStrongETag="false"
noCompressionUserAgents="gozilla,traviata"
port="443"
scheme="https"
secure="true"
server="MyTomcat"
socket.soReuseAddress="true"
sslEnabledProtocols="TLSv1.1,TLSv1.2"
sslProtocol="TLS"
>
<UpgradeProtocol className="org.apache.coyote.http2.Http2Protocol" compressibleMimeType="text/html,application/json" compression="on" compressionMinSize="1024" useSendfile="false" />
</Connector>
我们观察到,使用 http1.1 gzip 配置可以很好地处理驻留在 Nginx 服务器中的资产。 但是当我们启用 http2 时,我们可以看到协议切换到 http2,但 gzip 配置未启用,服务器标头也未覆盖。对于驻留在 Nginx 服务器标头中的断言,其值为 server: Nginx/1.20.1。
关于如何使用 http2 启用 gzip 配置的任何想法?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)