Search code examples
apacheubuntuhttp2

HTTP/2 on Apache (Ubuntu 14.04) does not work


I've tried many tutorials how to enable http2 on apache server; e.g.:

But without success.

Here is my configuration:

$ apache2 -v
Server version: Apache/2.4.23 (Ubuntu)

$ apachectl -M
Loaded Modules:
...
http2_module (shared)
...
ssl_module (shared)
...

Here is my /etc/apache2/sites-available/default-ssl.conf

<IfModule mod_ssl.c>
    <VirtualHost *:443>

        ServerAdmin info@example.net
        DocumentRoot /var/www/html
        ServerName example.net 
        ServerAlias www.example.net

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined

        ProxyPassMatch ^/(.*\.php(/.*)?)$ fcgi://127.0.0.1:9000/var/www/html/$1

        Protocols h2 http/1.1

        SSLEngine on
        SSLCertificateFile /etc/apache2/ssl/apache.crt
        SSLCertificateKeyFile /etc/apache2/ssl/apache.key

        <FilesMatch "\.(cgi|shtml|phtml|php)$">
                SSLOptions +StdEnvVars
        </FilesMatch>
        <Directory /usr/lib/cgi-bin>
                SSLOptions +StdEnvVars
        </Directory>
        BrowserMatch "MSIE [2-6]" \
                        nokeepalive ssl-unclean-shutdown \
                        downgrade-1.0 force-response-1.0
        BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown

    </VirtualHost>
</IfModule>

When I'm trying load my page (https://example.net) in chrome, I can see this response header:

HTTP/1.1 200 OK
Date: Tue, 09 Aug 2016 12:05:08 GMT
Server: Apache/2.4.23 (Ubuntu)
Upgrade: h2
Connection: Upgrade, Keep-Alive
Last-Modified: Thu, 30 Jun 2016 14:22:30 GMT
ETag: "b18-5367f99a49580-gzip"
Accept-Ranges: bytes
Vary: Accept-Encoding
Content-Encoding: gzip
Content-Length: 538
Keep-Alive: timeout=5, max=100
Content-Type: text/html

Am I Missing something? Can you give me any hints?


Solution

  • Update Ubuntu 14.04 to 16.04 did it!