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?

  1. Installieren von Build-Abhängigkeiten
  2. 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
  3. Nginx Virtual Host konfigurieren
  4. 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-Repository hinzufügen

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- und ngx_brotli-Quelldateien herunterladen

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.

Nginx mit ngx_brotli Unterstützung erstellen

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

Paketerstellung komplett

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 installieren und Brotli-Support aktivieren

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.

Nginx-Konfiguration

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.

Nginx-Testseite

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.

Brotli Kodierung

Die Nginx-Installation mit Brotli Compression Support auf Ubuntu 18.04 wurde erfolgreich abgeschlossen.

Referenzen

Das könnte dich auch interessieren …