tomcat - 在Tomcat中可以使用https进行gzip压缩吗?

标签 tomcat https compression gzip

是否可以为 https 配置 Tomcat (7.0.75) 并同时启用 gzip 压缩?我无法找出 server.xml 中 http 连接器属性的有效组合完成工作。在 http 上工作的四个与压缩相关的属性:

compression="on"
compressableMimeType="application/json"
compressionMinSize="8192"
useSendfile="false"
配置 https 时似乎没有任何效果。我目前的配置:
<Connector port="8443"
  protocol="HTTP/1.1"
  SSLEnabled="true"
  maxThreads="50"
  server="web"
  allowTrace="false"
  keystoreFile="/app/certs/keystore.jks"
  keystorePass="********"
  scheme="https"
  secure="true"
  clientAuth="false"
  sslProtocol="TLS"
  sslEnabledProtocols="TLSv1.1,TLSv1.2" 
  ciphers="TLS_..._SHA"
  maxKeepAliveRequests="100"
  connectionTimeout="20000"
  compression="on"
  compressableMimeType="application/json"
  compressionMinSize="8192"
  useSendfile="false"
  maxSwallowSize="-1"
  socket.soKeepAlive="true"/>

最佳答案

我使用的这个配置server.xml :
1.http连接器

<Connector port="80" protocol="HTTP/1.1" connectionTimeout="20000"
    compression="on" compressionMinSize="0" useSendfile="false"
    redirectPort="443" />
2. https连接器
<Connector port="443" protocol="org.apache.coyote.http11.Http11AprProtocol"
           maxThreads="200" SSLEnabled="true" connectionTimeout="20000"
           compression="on" compressionMinSize="0" useSendfile="false" >
    <SSLHostConfig>
        <Certificate certificateKeyFile="conf/key.crt"
                     certificateFile="conf/certificate.crt"
                     certificateChainFile="conf/chain.crt"
                     type="RSA" />
    </SSLHostConfig>
</Connector>
您可能想要更改端口 808080 , 和端口 4438443 .

更新:如果您使用 http2协议(protocol) - 也添加这一行:
<UpgradeProtocol className="org.apache.coyote.http2.Http2Protocol"
                 compression="on" compressionMinSize="0" useSendfile="false" />

关于tomcat - 在Tomcat中可以使用https进行gzip压缩吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45888817/

相关文章:

java - 使用 Spring MVC 的纯 HTML 页面应用程序

c# - 使用c#自动登录网站

javascript - Javascript 中的最佳灰度图像压缩

php - 关闭编译器执行中的PHP错误

java - 如何部署 Java Web 应用程序。部署步骤

tomcat - 仅对某些特定资源请求客户端证书身份验证

tomcat - 在 Tomcat 中定义可直接从 http ://localhost 访问

ssl - CNAMES 如何与 SSL 证书一起使用

仅当服务器需要客户端证书时,iOS 客户端才无法使用 f5 BigIP 进行服务器验证/身份验证

javascript - Google Maps API v3 - API 脚本压缩/混淆