I am currently trying to enable http2 for a project. The system is running on Ubuntu 16.04 on AWS behind an ELB with proxy_protocol enabled. The site is running SSL only with Apache 2.4 from ppa:ondrej/apache2 in mpm_event mode and a tomcat 7 as the backend. The vhost config is:
<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>
The "normal" GET/POST requests work fine if we enable http2, just a file upload causes a message like this in the logs with a 400 Bad Request for the Client:
[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:
i did some stracing and the request is not event send to the tomcat, it gets stuck in apache. The Proxy Protocol headers also look ok, so i am also confused by the first message.
Does somebody have an idea whats going on here :)?