Tomcat 9.0.16 на OS X: Safari не может загрузить сжатый gzip контент по HTTP / 2 - PullRequest
0 голосов
/ 13 марта 2019

Мы работаем с сервером Tomcat 9.0.16 в OS X Mojave (10.14.3) с OpenJDK 11.0.1 + 13 и в настоящее время выполняем обновление до HTTP / 2. Однако, используя эту конфигурацию, Safari не может загрузить сжатый gzip-контент с сервера и выводит сообщение об ошибке «Сетевое соединение было потеряно». Это действительно происходит только при загрузке сжатого gzip содержимого; отключение сжатия для протокола обновления HTTP / 2 (org.apache.coyote.http2.Http2Protocol) решит проблему. Похоже, что другие браузеры не сталкивались с этой проблемой (успешно протестированы на современных Edge, Firefox и Chrome).

Что мы уже пробовали:

  • Различные настройки для sendFile -> проблема сохраняется
  • Различные настройки для сжатияMinSize -> проблема не устранена
  • Эксперименты с различными типами MIME в compressibleMimeType -> проблема не устранена
  • Использование org.apache.coyote.http11.Http11Nio2Protocol в соединителе -> проблема не устранена
  • Использование org.apache.coyote.http11.Http11AprProtocol в соединителе с APR 1.6.5 и tomcat-native 1.2.21 -> проблема не устранена

В настоящее время наши единственные возможности - использовать HTTP / 2 без сжатия или перейти на HTTP / 1.1. Я заметил, что есть похожая ошибка в багтрекере Debian apache2: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=915103. Возможно, это связано с тем, что ошибка выглядит аналогично, и там затронуто только Safari.

У кого-нибудь есть намеки, в чем может быть проблема? Ошибка Tomcat? Ошибка Safari? Ошибка JVM? До сих пор я не смог добраться до корня этой проблемы, и лог-файлы Tomcat, похоже, тоже не помогают.

Большое спасибо за любую помощь.

...