Проблемы с загрузкой файлов с помощью Apache 2.4 + http2 + proxy_http
В настоящее время я пытаюсь включить http2 для проекта. Система работает в Ubuntu 16.04 на AWS за ELB с включенным proxy_protocol. Сайт использует SSL только с Apache 2.4 из ppa:ondrej/apache2 в режиме mpm_event и tomcat 7 в качестве бэкэнда. Конфигурация vhost:
<VirtualHost *:443>
ProxyProtocol On
ServerName myhostname
DocumentRoot /var/www/html/
<Directory /var/www/html/>
Options +FollowSymLinks -Indexes
AllowOverride None
Require all granted
</Directory>
<Location />
Require all granted
</Location>
Header always set Strict-Transport-Security "max-age=86400"
RequestHeader set X-Forwarded-Proto https
SSLEngine On
SSLCertificateFile mycrt
SSLCertificateKeyFile mykey
ProxyTimeout 1800
ProxyPreserveHost on
ProxyPass / http://localhost:8080/
ProxyPassReverse / http://localhost:8080/
</VirtualHost>
"Нормальные" запросы GET/POST работают нормально, если мы включаем http2, просто загрузка файла вызывает сообщение, подобное этому, в журналах с 400 ошибочными запросами для клиента:
[proxy_protocol:error] [client ] ProxyProtocol: no valid header found
[proxy_http:error] (103)Software caused connection abort: [client ] AH01095: prefetch request body failed to 127.0.0.1:8080 (localhost) from 10.X (), referer:
я сделал некоторую проверку, и запрос не является событием, отправленным коту, он застревает в Apache. Заголовки протокола Proxy также выглядят хорошо, поэтому я также смущен первым сообщением.
У кого-нибудь есть идея, что здесь происходит?
1 ответ
Похоже, ошибка в mod_proxy_protocol. Это не совместимо с mod_http2 в настоящее время.
См. Эту ошибку для получения дополнительной информации: https://github.com/roadrunner2/mod-proxy-protocol/issues/6