http2Leider hat es HTTP2 nicht ins Ubuntu 16.04 Release geschafft. Apache hat das Modul noch immer als „Experimental“ geflagged und somit wurde es für 16.04 noch nicht übernommen. Aber es gibt einen recht einfachen Weg trotzdem einen Apache mit HTTP2 unter Ubuntu 16.04 zu betreiben.

Zuerst müssen in der sources.list die Source-Repositories aktiviert werden. Also mit präferiertem Editor die Datei /etc/apt/sources.list editieren und die deb-src Zeilen von ihrem Kommentar (#) befreien.

Danach müssen ein paar Dependencies installiert werden, damit wir das Modul auch sauber bauen können.

apt-get update
apt-get install build-essential curl devscripts fakeroot libnghttp2-dev

Nun gilt es ein Verzeichnis anzulegen und die Apache sourcen via apt-Befehl herunterzuladen und die Sourcen zu kompilieren.

#mkdir apachesourcen
#cd apachesourcen
#apt-get source apache2
#apt-get build-dep apache2 
#cd apache-2.4.18 
#fakeroot debian/rules binary 
#cp debian/apache2-bin/usr/lib/apache2/modules/mod_http2.so /usr/lib/apache2/modules

Es ist fast geschafft. Für das Modul braucht es noch das zugehörige Load-File und die Aktivierung im Apache.

#cd /etc/apache2/mods-available
#vim http2.load

LoadModule http2_module /usr/lib/apache2/modules/mod_http2.so

<IfModule http2_module>
LogLevel http2:info
</IfModule>

Die Aktivierung des Moduls funktioniert mit dem gewohnten a2enmod-Befehl:

a2enmod http2

Das HTTP2-Modul ist nun betriebsbereit, allerdings noch unbenutzt. In allen Configfiles der vHosts die http2 unterstützen sollen, muss noch eine Zeile eingefügt werden. Diese aktiviert http2 und http 1.1 als Fallback für den vHost.

Protocols h2 http/1.1

Nach einem Restart des Apache ist http2 in Betrieb und kann genutzt werden.

service apache2 restart

Ob http2 tatsächlich funktioniert, kann z. B. bei Keycdn unter https://tools.keycdn.com/http2-test getestet werden.
Für Chrome und Firefox gibt es auch die nette Extension „HTTP/2 and SPDY Indicator„, welche nach Installation oben rechts im Browser anzeigt, ob die gerade geladene Seite mit HTTP2 oder SPDY ausgeliefert wurde.