nginx: HTTP/2 unter Debian 8 verwenden
Dieser Artikel ist bereits über 3 Jahre alt. Die Inhalte sind wahrscheinlich bereits überholt und nicht mehr aktuell.
Da die meisten modernen Browser mittlerweile kein NPN mehr (sondern nur noch ALPN) unterstützen, kann nginx unter Debian 8 keine Webseiten mehr mit HTTP/2 ausliefern. Die nötige OpenSSL-Bibliothek ist dort nur in einer veralteten Version vorhanden.
Abhilfe schafft eine aktuellere OpenSSL-Version, die durch ein Upgrade auf Debian 9 (Stretch) installiert werden kann.
Um ein solches risikoreiches Upgrade zu umgehen, lässt sich allerdings auch OpenSSL aus den jessie-backports
installieren.
OpenSSL Upgrade
Zunächst muss das Backports-Repository in die /etc/apt/sources.list
aufgenommen werden.
Dazu die folgenden Zeilen in der besagten Datei einfügen:
deb http://ftp.de.debian.org/debian/ jessie-backports main non-free contrib
deb-src http://ftp.de.debian.org/debian/ jessie-backports main non-free contrib
Anschließend den lokalen Cache aktualisieren und OpenSSL upgraden:
apt-get update
apt-get install -t jessie-backports openssl
nginx Upgrade
Nun muss noch nginx aus den herstellereigenen Repositories aktualisiert werden. Um die Kompatibilität mit der neuen OpenSSL-Version zu gewährleisten, muss dabei die für Ubuntu 16.04 kompilierte Version verwendet werden.
Dazu fügen Sie zunächst die folgenden Zeilen in die /etc/apt/sources.list.d/nginx.list
Datei ein:
deb http://nginx.org/packages/mainline/ubuntu/ xenial nginx
deb-src http://nginx.org/packages/mainline/ubuntu/ xenial nginx
Anschließend den lokalen Cache aktualisieren und nginx upgraden:
apt-get update
apt-get --only-upgrade install nginx
nginx Konfiguration
Zum Abschluss kann nun die Server-Konfiguration zur Verwendung von HTTP/2 angepasst werden.
Fügen Sie einfach http2
an das Ende der listen 443 ssl
-Zeile des Hosts ein:
server {
listen 443 ssl http2;
...
}
Anschließend muss nur noch die Konfiguration getestet und neu eingelesen werden:
nginx -t
systemctl reload nginx.service