Я использую Tomcat 8.5.29 и, используя соответствующую конфигурацию, я включил поддержку HTTP2 для сайта.Ниже приведена конфигурация в файле server.xml.
<Connector port="443" protocol="org.apache.coyote.http11.Http11AprProtocol"
maxThreads="150" SSLEnabled="true" compressableMimeType="text/html,text/xml,text/plain,text/css,text/javascript,application/javascript,application/json" compression="on" compressionMinSize="1024"
>
<UpgradeProtocol className="org.apache.coyote.http2.Http2Protocol" />
<SSLHostConfig>
<Certificate certificateKeyFile="conf/localhost-key.pem"
certificateFile="conf/localhost-cert.pem"
certificateChainFile="conf/cacert.pem"
type="RSA" />
</SSLHostConfig>
</Connector>
Когда я пытался сравнить время загрузки страницы для сайта, который поддерживает HTTPS 1.1 и HTTP2, он не согласован.Иногда для загрузки требуется больше времени, а иногда - для сравнения с HTTPS 1.1.
Для измерения времени загрузки страницы я использую инструменты разработчика из браузера Chrome.
ПозжеЯ обнаружил, что время загрузки для HTTP / 2 выше, потому что «кодировка содержимого» в ответе не gzip.При использовании HTTP / 1.1 размер файла сценария составляет 4 МБ (gzip), где, как и в HTTP / 2, тот же файл имеет 8 МБ (без кодирования содержимого).Сжатия не происходит.Мы также пробовали использовать useSendfile и сжатие в качестве «силы», но это не сработало.
Мы также пробовали использовать Tomcat версии 8.5.31, но не повезло !!Возникла та же проблема.
Мы использовали Tomcat версии 9 и, используя следующую конфигурацию, получили содержимое в gzip (сжатый).Теперь размер файла уменьшился на 2 МБ при быстрой загрузке страницы.
<Connector port="443" protocol="org.apache.coyote.http11.Http11AprProtocol"
maxThreads="150" SSLEnabled="true"
>
<UpgradeProtocol className="org.apache.coyote.http2.Http2Protocol" compressableMimeType="text/html,text/xml,text/plain,text/css,text/javascript,application/javascript,application/json" compression="on" compressionMinSize="1024" />
<SSLHostConfig>
<Certificate certificateKeyFile="conf/localhost-key.pem"
certificateFile="conf/localhost-cert.pem"
certificateChainFile="conf/cacert.pem"
type="RSA" />
</SSLHostConfig>
</Connector>
Похоже, что Tomcat версии 8.5 не поддерживает gzip с HTTP2.Есть идеи по этому поводу?