GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

So installieren Sie Nginx mit Brotli-Komprimierung unter 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 reichhaltiges Feature-Set, einfache Konfiguration und geringer Speicherverbrauch.

Brotli ist ein von Google erstellter Open-Source-Komprimierungsalgorithmus. Brotli bietet eine bessere und verlustfreie Komprimierung als gzip und wird jetzt von den wichtigsten Browsern und Webservern unterstützt.

Mehr zur Brotli-Performance:

  • Akamai-Blogbeitrag.
  • Cloudflare-Post über Brotli.
  • Mozilla-Blogbeitrag.

In diesem Tutorial zeige ich Ihnen Schritt für Schritt, wie Sie Unterstützung für den Brotli-Komprimierungsalgorithmus im Nginx-Webserver hinzufügen. Wir werden ein benutzerdefiniertes Nginx-Paket erstellen, das den Brotli-Komprimierungsalgorithmus unterstützt. Wir werden die neueste Ubuntu-Version verwenden und ein nginx-Paket für das Debian-Betriebssystem erstellen.

Voraussetzungen

  • Ubuntu 18.04
  • Root-Rechte

Was werden wir tun?

  1. Build-Abhängigkeiten installieren
  2. Installieren Sie Nginx mit ngx_brotli
    • Nginx-Repository hinzufügen
    • Nginx und ngx_brotli herunterladen
    • Nginx mit ngx_brotli-Unterstützung erstellen
    • Installieren Sie Nginx und aktivieren Sie die ngx_brotli-Unterstützung
  3. Konfigurieren Sie den virtuellen Nginx-Host
  4. Testen

Schritt 1 – Build-Abhängigkeiten installieren

Als erstes müssen wir für diese Anleitung die Build-Abhängigkeiten auf dem System installieren.

Aktualisieren Sie das Ubuntu-Repository und installieren Sie dann alle Paketerstellungsabhängigkeiten 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 installieren wir das benutzerdefinierte nginx-Paket, das den Brotli-Komprimierungsalgorithmus auf dem Ubuntu-System unterstützt. Und wir werden die neueste stabile Version des nginx-Pakets verwenden, das aus dem offiziellen nginx-Repository heruntergeladen werden kann.

Nginx-Repository hinzufügen

Fügen Sie vor dem Hinzufügen des nginx-Repositorys das nginx-Schlüsselzeichen 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

Konfiguration unten einfügen.

deb http://nginx.org/packages/ubuntu/ bionic nginx
deb-src http://nginx.org/packages/ubuntu/ bionic nginx

Speichern und beenden.

Aktualisieren Sie jetzt die Ubuntu-Repositories.

sudo apt-get update

Das Nginx-Repository wurde hinzugefügt.

Nginx- und ngxbrotli-Quelldateien herunterladen

Jetzt werden wir die Nginx-Pakete mit dem apt-Befehl aus dem nginx-Repository herunterladen.

Gehen Sie in das Verzeichnis ‚/usr/local/src‘ und laden Sie die Nginx-Quelle mit dem folgenden apt-Befehl 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

Klonen Sie nach Abschluss der Installation den Quellcode „ngx_brotli“ von GitHub.

git clone --recursive https://github.com/google/ngx_brotli.git

Nginx und ngx_brotli wurden heruntergeladen.

Erstellen Sie Nginx mit ngx_brotli-Unterstützung

Jetzt müssen wir die Standard-Build-Regel von Nginx bearbeiten, wir müssen ngx_brotli zur Build-Regel der Pakete hinzufügen.

Gehen Sie in das Verzeichnis ‚/usr/local/src/nginx-*‘ und bearbeiten Sie die Debian-‚rules‘-Konfiguration.

cd /usr/local/src/nginx-*/
vim debian/rules

Jetzt erhalten Sie zwei Build-Umgebungen für 'config.env.nginx ' und 'config.env.nginx_debug '. Fügen Sie 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 dpkg-Befehl aus.

sudo dpkg-buildpackage -b -uc -us

Hinweis:

  • -b:Baue nur Binärdateien, keine Quelldateien.
  • -uc :Unsignierte .buildinfo- und .changes-Datei.
  • -us:unsigniertes Quellpaket.

Wenn der Build abgeschlossen ist, erhalten Sie die nginx-*.deb-Pakete im Verzeichnis „/usr/local/src“, wie unten gezeigt.

ls -lah

Installieren Sie Nginx und aktivieren Sie die Brotli-Unterstützung

Der nginx-Build mit ngx_brotli ist abgeschlossen, installieren Sie die nginx-*.deb-Pakete mit dem dpkg-Befehl unten.

cd /usr/local/src/
sudo dpkg -i *.deb

Nginx mit der ngx_brotli-Unterstützung wurde installiert.

Gehen Sie nun in das Konfigurationsverzeichnis ‚/etc/nginx‘ und bearbeiten Sie die Konfigurationsdatei ‚nginx.conf‘.

cd /etc/nginx/
vim nginx.conf

Aktivieren Sie ngx_brotli auf nginx, indem Sie die Konfiguration unten 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-Komprimierungsunterstützung wurde aktiviert.

Schritt 3 – Konfigurieren Sie den virtuellen Nginx-Host

In diesem Schritt werden wir versuchen, einen neuen virtuellen Host für den Domänennamen 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 ‚/etc/nginx‘ und erstellen Sie eine neue virtuelle Hostkonfiguration ‚brotli.conf‘.

cd /etc/nginx/
vim conf.d/brotli.conf

Fügen Sie dort die folgende Konfiguration des virtuellen nginx-Hosts 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 SSL-Zertifikatspfad.

Testen Sie jetzt 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 nginx-Host wurde hinzugefügt.

Schritt 4 – Testen

Öffnen Sie Ihren Webbrowser und geben Sie den Domainnamen ein, meiner ist:

http://nginx.hakase-labs.io

Nun werden Sie auf die https-Verbindung umgeleitet. Klicken Sie mit der rechten Maustaste auf die Seite und klicken Sie auf "Element prüfen". '. Klicken Sie auf "Netzwerk". ' Tab und lade die Seite neu.

Klicken Sie auf das Anforderungsdetail und Sie erhalten alle Anforderungs- und Antwortheader vom Webserver, wie unten gezeigt.

Im Abschnitt „Antwort-Header“ sehen Sie „content-encoding:br“ für Brotli-Unterstützung.

Wenn Sie nun einen weiteren Test wünschen, können Sie den Curl-Befehl wie unten gezeigt verwenden.

curl -H 'Accept-Encoding: br' -I https://nginx.hakase-labs.io

Und Sie sehen das Ergebnis 'content-encoding:br' für die Brotli-Unterstützung.

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

Referenzen

  • https://github.com/google/ngx_brotli
  • https://www.babak.io/blog/

Ubuntu
  1. So installieren Sie Nextcloud mit Nginx auf Ubuntu 18.04 LTS

  2. So installieren Sie Seafile mit Nginx unter Ubuntu 20.04 LTS

  3. So installieren Sie MediaWiki mit Nginx unter Ubuntu 16.04

  4. So installieren Sie Varnish Reverse Proxy mit Nginx unter Ubuntu 16.04 LTS

  5. So stellen Sie Modsecurity mit Nginx auf Ubuntu 20.04 LTS bereit

So installieren Sie phpMyAdmin mit Nginx (LEMP) unter Ubuntu 18.04 LTS

So installieren Sie Nginx mit dem Ngx_Pagespeed-Modul unter Ubuntu 16.04 LTS

So installieren Sie Joomla mit Nginx unter Ubuntu 18.04 LTS

So installieren Sie phpMyAdmin mit Nginx unter Ubuntu 18.04 LTS

So installieren Sie phpMyAdmin mit Nginx unter Ubuntu 20.04 LTS

So installieren Sie das Brotli-Modul für Nginx unter Ubuntu 20.04 LTS