Как реализовать HTTP2 в Tomcat👨⚕️

Полная поддержка HTTP2 добавлена в последнюю версию Tomcat 9.x. HTTP/2 работает быстрее, намного быстрее, чем HTTP/1.1.

Если вы напрямую доставляете контент в браузер (без прохождения через веб-сервер) из Tomcat, то реализация HTTP/2 может значительно сократить время загрузки приложения и в целом повысить производительность.

Рекомендуется протестировать его в непроизводственной среде, чтобы убедиться, что приложение работает должным образом.

Прочтите это, если вы хотите включить веб-сервер, такой как Apache или Nginx.

Как включить HTTP/2 в Nginx

Предпосылка

Tomcat должен быть защищен сертификатом SSL/TLS перед внедрением HTTP2.

Если вам нужна помощь с внедрением, ознакомьтесь с этим руководством.

  • Скрипт Bash для автоматического обновления SSL-сертификата Letsencrypt на Tomcat
  • Как реализовать защиту по SSL в Apache Tomcat?

Реализация HTTP/2 на Tomcat

Примечание. Перед изменением сделайте резервную копию файлов конфигурации, чтобы вы могли восстановить их, если что-то пойдет не так.

  • Войдите в Tomcat Server и перейдите в папку установки
  • Перейти в папку conf
  • Измените файл server.xml, используя vi или ваш любимый редактор
  • Добавьте следующее в коннектор SSL
 

В целом, это должно выглядеть так:

     

Выше приведена моя лабораторная конфигурация, поэтому, если вы копируете ее, не забудьте настроить конфигурацию в соответствии с требованиями вашей среды, особенно с портом, если используется пользовательский и путь к сертификату.

Перезапустите экземпляр Tomcat, перейдя в папку bin и выполнив следующие скрипты:

./shutdown.sh ./startup.sh

Проверьте журнал catalina.out, и вы должны увидеть следующее подтверждение, настроенное для поддержки h2

24-Feb-2019 19:43:47.559 INFO [main] org.apache.coyote.http11.AbstractHttp11Protocol.configureUpgradeProtocol The ["https-openssl-apr-443"] connector has been configured to support negotiation to [h2] via ALPN

Это означает, что Tomcat готов обслуживать запросы по протоколу HTTP2.

Тестирование

Как узнать, работает ли он так, как ожидалось?

Есть несколько способов проверить это.

Использование Chrome

Полезно для тестирования интранет-приложений.

  • Запустите Google Chrome
  • Откройте Инструменты разработчика, нажав F12
  • Перейдите на вкладку сети
  • Откройте приложение Tomcat и обратите внимание на столбец «Protocol».



И, как вы можете видеть, запросы были обработаны с использованием h2.

Использование журналов

Посмотрите файл access.log и просмотрите входящие запросы.

xx.xxx.xxx.xxx - - [24/Feb/2019:20:59:23 +0000] "GET/HTTP/2.0" 200 11468 xx.xxx.xxx.xxx - - [24/Feb/2019:20:59:23 +0000] "GET /tomcat.css HTTP/2.0" 200 5931 xx.xxx.xxx.xxx - - [24/Feb/2019:20:59:23 +0000] "GET /tomcat.png HTTP/2.0" 200 5103 xx.xxx.xxx.xxx - - [24/Feb/2019:20:59:23 +0000] "GET /bg-button.png HTTP/2.0" 200 713 xx.xxx.xxx.xxx - - [24/Feb/2019:20:59:23 +0000] "GET /bg-upper.png HTTP/2.0" 200 3103 xx.xxx.xxx.xxx - - [24/Feb/2019:20:59:23 +0000] "GET /bg-nav.png HTTP/2.0" 200 1401 xx.xxx.xxx.xxx - - [24/Feb/2019:20:59:23 +0000] "GET /asf-logo-wide.svg HTTP/2.0" 200 27530 xx.xxx.xxx.xxx - - [24/Feb/2019:20:59:23 +0000] "GET /bg-middle.png HTTP/2.0" 200 1918 xx.xxx.xxx.xxx - - [24/Feb/2019:20:59:23 +0000] "GET /favicon.ico HTTP/2.0" 200 21630

Видите ли вы как HTTP/2.0 классифицируется в каждом запросе?

Использование интернет-инструментов

Если URL-адрес вашего приложения Tomcat доступен в Интернете, вы можете проверить следующие инструменты.

  • Geekflare HTTP/2 Test
  • HTTP2.Pro

Заключение

Реализация H2 на Tomcat проста.

Я настоятельно рекомендую протестировать ваше приложение после его реализации, чтобы убедиться в отсутствии побочных эффектов.

Отправка комментария

0 Комментарии