Hi Aayush, Are you saying this combo, Tomcat 9.0.5, Oracle Java 1.8.0_144, gzip works with HTTP2? Is it windows or linux? That is good to know.
Regarding tomcat 8.5.31, I don't think config file is the issue. Unfortunately, I don't have the skill to help the developer to debug the problem. see this thread in detail. https://www.mail-archive.com/users@tomcat.apache.org/msg128302.html <https://www.mail-archive.com/users@tomcat.apache.org/msg128302.html> > On Jul 25, 2018, at 6:05 PM, Aayush Dev <cmgogo...@gmail.com> wrote: > > With Tomcat 8.5.31, I cant enable gzip compression with HTTP2 protocol. If > someone has successfully enabled compression on Tomcat 8.5 with HTTP2 > protocol, please help me with correct configuration. > > Things tried: > - tried with and without useSendfile="false" attribute under > UpgradeProtocol. > - turned off "useSendfile" by adding "sendfileSize=-1" init-param for > default servlet under conf/web.xml > - tried APR (with OpenSSL) connector too instead of NIO > - compression is not working with Chrome and Firefox (latest ver.) > - testing with default ROOT webapp to avoid any other conflicting setting > - gzip compression works with same setting on Tomcat 9.0.5 > - using openjdk 10.0.1 (and tried with Oracle Java 1.8.0_144) > > Using the following connector: > <Connector > > protocol="org.apache.coyote.http11.Http11NioProtocol" > > port="8443" > > URIEncoding="UTF-8" > > maxPostSize="40960000" > > maxHttpHeaderSize="1024000" > > maxThreads="2500" > > enableLookups="false" > > SSLEnabled="true" > > scheme="https" > > secure="true" > > compression="on" > > noCompressionUserAgents="gozilla,traviata" > > compressableMimeType= > "text/html,text/json,application/json,text/xml,text/plain,application/javascript,text/css,text/javascript,text/js" > > useSendfile="false" > > compressionMinSize="500"> > > <UpgradeProtocol > > className="org.apache.coyote.http2.Http2Protocol" > > compression="on" > > compressionMinSize="500" > > keepAliveTimeout="60000" > > maxConcurrentStreamExecution="200" > > maxConcurrentStreams="200" > > maxHeaderSize="1024000" > > noCompressionUserAgents="gozilla,traviata" > > useSendfile="false" /> > > <SSLHostConfig certificateVerification="none" > > honorCipherOrder="true" protocols="TLSv1.1,TLSv1.2" > > ciphers= > "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_DHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA" >> > > <Certificate > > certificateKeystoreFile="conf/KeystoreFile.jks" > > certificateKeystorePassword="xxxxxx" > > certificateKeystoreType="JKS" /> > > </SSLHostConfig> > > </Connector> > > Request headers (from Chrome): > :authority: localhost:8443 > :method: GET > :path: /tomcat.css > :scheme: https > accept: text/css,*/*;q=0.1 > accept-encoding: gzip, deflate, br > accept-language: en-US,en;q=0.9 > cache-control: no-cache > pragma: no-cache > referer: https://localhost:8443/ > user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 > (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36 > > Response headers (from Chrome): > accept-ranges: bytes > content-type: text/css > date: Wed, 25 Jul 2018 21:48:16 GMT > etag: W/"5931-1524878698000" > last-modified: Sat, 28 Apr 2018 01:24:58 GMT > status: 200 > > > Thanks in advance.