Wie installiert man Nginx mit Brotli Compression auf Ubuntu 18.04 LTS?
Nginx (engine-x) ist ein Open Source Hochleistungs-HTTP-Server, Reverse-Proxy und IMAP/POP3-Proxy-Server. Die herausragenden Merkmale von Nginx sind Stabilität, ein umfangreicher Funktionsumfang, einfache Konfiguration und geringer Speicherverbrauch.
Brotli ist ein von Google entwickelter Open-Source-Kompressionsalgorithmus. Brotli bietet eine bessere und verlustfreie Komprimierung als gzip und wird nun von allen gängigen Browsern und Webservern unterstützt.
Mehr über Brotli Performance:
In diesem Tutorial zeige ich Ihnen Schritt für Schritt, wie Sie Unterstützung für den Brotli-Kompressionsalgorithmus im Nginx-Webserver hinzufügen können. Wir werden ein benutzerdefiniertes nginx-Paket erstellen, das den Brotli-Kompressionsalgorithmus unterstützt. Wir werden die neueste Ubuntu-Version verwenden, und wir werden ein nginx-Paket für das Debian-Betriebssystem erstellen.
Voraussetzungen
- Ubuntu 18.04.
- Root-Rechte
Was werden wir tun?
- Installieren von Build-Abhängigkeiten
- Nginx mit ngx_brotli installieren
- Nginx-Repository hinzufügen
- Nginx und ngx_brotli herunterladen
- Nginx mit ngx_brotli Unterstützung erstellen
- Nginx installieren und ngx_brotli Support aktivieren
- Nginx Virtual Host konfigurieren
- Prüfung
Schritt 1 – Installieren von Build-Abhängigkeiten
Das erste, was wir für diesen Leitfaden benötigen, ist die Installation der Build-Abhängigkeiten auf dem System.
Aktualisieren Sie das Ubuntu-Repository und installieren Sie dann alle Pakete, die Abhängigkeiten erstellen, mit einem apt-Befehl unten.
sudo apt update sudo apt install dpkg-dev build-essential zlib1g-dev libpcre3 libpcre3-dev unzip
Warten Sie, bis alle Pakete installiert sind.
Schritt 2 – Nginx mit ngx_brotli installieren
In diesem Schritt werden wir das benutzerdefinierte nginx-Paket installieren, das den Brotli-Kompressionsalgorithmus auf dem Ubuntu-System unterstützt. Und wir werden die neueste stabile Version des nginx-Pakets verwenden, die aus dem offiziellen nginx-Repository heruntergeladen werden kann.
Nginx-Repository hinzufügen
Bevor Sie das nginx-Repository hinzufügen, fügen Sie das Schlüsselzeichen nginx mit dem folgenden Befehl hinzu.
curl -L https://nginx.org/keys/nginx_signing.key | sudo apt-key add -
Erstellen Sie nun mit dem vim-Editor eine neue nginx-Repository-Datei ’nginx.list‘ im Verzeichnis ‚/etc/apt/sources.list.d‘.
vim /etc/apt/sources.list.d/nginx.list
Füge die Konfiguration unten ein.
deb http://nginx.org/packages/ubuntu/ bionic nginx deb-src http://nginx.org/packages/ubuntu/ bionic nginx
Speichern und beenden.
Aktualisieren Sie nun die ubuntu-Repositories.
sudo apt-get update
Das Nginx-Repository wurde hinzugefügt.
Nginx- und ngx_brotli-Quelldateien herunterladen
Nun werden wir die Nginx-Pakete mit dem Befehl apt aus dem nginx-Repository herunterladen.
Gehen Sie in das Verzeichnis’/usr/local/src‘ und laden Sie die Nginx-Quelle mit dem Befehl apt unten herunter.
cd /usr/local/src sudo apt source nginx
Installieren Sie nun alle benötigten Paketabhängigkeiten für nginx.
sudo apt build-dep nginx -y
Und nachdem die Installation abgeschlossen ist, klonen Sie den ’ngx_brotli‘ Quellcode von GitHub.
git clone --recursive https://github.com/google/ngx_brotli.git
Nginx und ngx_brotli wurden heruntergeladen.
Nginx mit ngx_brotli Unterstützung erstellen
Jetzt müssen wir die standardmäßige Nginx-Buildregel bearbeiten, wir müssen das ngx_brotli zur Buildregel der Pakete hinzufügen.
Gehen Sie in das Verzeichnis ‚/usr/local/src/nginx-*‘ und bearbeiten Sie die Konfiguration der Debian-Regeln.
cd /usr/local/src/nginx-*/ vim debian/rules
Nun erhalten Sie zwei Buildumgebungen für‘config.env.nginx‚ und‘config.env.nginx_debug‚. Füge die Option ‚–add-module=‘ für ngx_brotli zu beiden gebauten Umgebungen hinzu.
--add-module=/usr/local/src/ngx_brotli
Speichern und beenden.
Und wir sind bereit, das nginx-Paket mit ngx_brotli-Unterstützung zu kompilieren und zu bauen.
Führen Sie den folgenden Befehl dpkg aus.
sudo dpkg-buildpackage -b -uc -us
Hinweis:
- -b: Erstellen Sie Binärdateien – nur, keine Quelldateien.
- -uc : Unsigned .buildinfo und .changes file.
- -uns: unsigniertes Quellpaket.
Wenn der Build abgeschlossen ist, erhalten Sie die Pakete nginx-*.deb im Verzeichnis ‚/usr/local/src‘, wie unten gezeigt.
ls -lah
Nginx installieren und Brotli-Support aktivieren
Der nginx-Build mit ngx_brotli ist fertig, installieren Sie die Pakete nginx-*.deb mit dem Befehl dpkg unten.
cd /usr/local/src/ sudo dpkg -i *.deb
Nginx mit der Unterstützung von ngx_brotli wurde installiert.
Gehen Sie nun in das Konfigurationsverzeichnis von ‚/etc/nginx‘ und bearbeiten Sie die Konfigurationsdatei’nginx.conf‘.
cd /etc/nginx/ vim nginx.conf
Aktivieren Sie das ngx_brotli auf nginx, indem Sie die folgende Konfiguration im Abschnitt’http {…}‘ hinzufügen.
brotli on; brotli_comp_level 6; brotli_static on; brotli_types text/plain text/css application/javascript application/x-javascript text/xml application/xml application/xml+rss text/javascript image/x-icon image/vnd.microsoft.icon image/bmp image/svg+xml;
Speichern und beenden.
Testen Sie die nginx-Konfiguration und stellen Sie sicher, dass kein Fehler vorliegt.
nginx -t
Die Brotli-Kompressionsunterstützung wurde aktiviert.
Schritt 3 – Nginx Virtual Host konfigurieren
In diesem Schritt werden wir versuchen, einen neuen virtuellen Host für den Domainnamen nginx.hakase-labs.io zu erstellen.
Hinweis:
- Die Brotli-Komprimierung unterstützt nur die HTTPS-Site, also stellen Sie sicher, dass Sie die Zertifikatsdateien für Ihren Domainnamen haben, oder Sie können kostenlose Letsencrypt SSL-Zertifikate generieren.
Gehen Sie in das Konfigurationsverzeichnis von ‚/etc/nginx‘ und erstellen Sie eine neue virtuelle Host-Konfiguration ‚brotli.conf‘.
cd /etc/nginx/ vim conf.d/brotli.conf
Fügen Sie dort die folgende virtuelle Host-Konfiguration von nginx ein.
# Redirect HTTP to HTTPS Nginx server { listen 80; server_name nginx.hakase-labs.io; return 301 https://$host$request_uri; } # SSL configuration server { listen 443 ssl http2; server_name nginx.hakase-labs.io; ssl_certificate /etc/letsencrypt/live/nginx.hakase-labs.io/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/nginx.hakase-labs.io/privkey.pem; # Improve HTTPS performance with session resumption ssl_session_cache shared:SSL:10m; ssl_session_timeout 5m; # Enable server-side protection against BEAST attacks ssl_prefer_server_ciphers on; ssl_ciphers ECDH+AESGCM:ECDH+AES256:ECDH+AES128:DH+3DES:!ADH:!AECDH:!MD5; # Disable SSLv3 ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # web root directory location / { root /usr/share/nginx/html; } }
Speichern und beenden.
Hinweis:
- Ändern Sie den Domainnamen mit Ihrer eigenen Domain.
- Ändern Sie den Pfad für SSL-Zertifikate.
Testen Sie nun die nginx-Konfiguration und stellen Sie sicher, dass kein Fehler vorliegt, und starten Sie dann den Dienst neu.
nginx -t systemctl restart nginx
Der neue virtuelle Host von nginx wurde hinzugefügt.
Schritt 4 – Prüfung
Öffnen Sie Ihren Webbrowser und geben Sie den Domain-Namen ein, meiner schon:
http://nginx.hakase-labs.io
Sie werden nun zur https-Verbindung weitergeleitet. Klicken Sie mit der rechten Maustaste auf die Seite und dann auf‘Element prüfen‚. Klicken Sie auf die Registerkarte „Netzwerk“ und laden Sie die Seite neu.
Klicken Sie auf das Detail der Anfrage und Sie erhalten alle Anfrage- und Antwortkopfzeilen vom Webserver, wie unten gezeigt.
Im Abschnitt „Response Headers“ sehen Sie die „Content-encoding: br“ für die Brotli-Unterstützung.
Wenn Sie nun einen weiteren Test wünschen, können Sie den Befehl curl wie unten gezeigt verwenden.
curl -H 'Accept-Encoding: br' -I https://nginx.hakase-labs.io
Und Sie werden das Ergebnis’content-encoding: br‘ für Brotli-Unterstützung sehen.
Die Nginx-Installation mit Brotli Compression Support auf Ubuntu 18.04 wurde erfolgreich abgeschlossen.