GNU/Linux >> LINUX-Kenntnisse >  >> Cent OS

So aktivieren Sie die Brotli-Komprimierung in Nginx unter CentOS 8

Brotli ist ein generischer verlustfreier Komprimierungsalgorithmus, der von Google als Alternative zu Gzip, Zopfli und Deflate entwickelt wurde und Daten mithilfe einer Kombination aus einer modernen Variante des LZ77-Algorithmus, Huffman-Codierung und Kontextmodellierung 2. Ordnung mit einem Komprimierungsverhältnis komprimiert vergleichbar mit den besten derzeit verfügbaren Allzweck-Komprimierungsmethoden. Es ist ähnlich schnell wie beim Ablassen, bietet aber eine dichtere Kompression.

Brotli ist Open-Source unter der MIT-Lizenz.

Nginx hat keinen offiziellen Support, aber es gibt ein von Google entwickeltes Drittanbietermodul namens ngx_brotli, das Sie verwenden können, um Nginx Unterstützung hinzuzufügen.

Dieses Tutorial zeigt Ihnen, wie Sie Brotli-Unterstützung zum Nginx-Webserver auf dem CentOS 8-Server hinzufügen.

HINWEIS: In diesem Leitfaden wird "johndoe" als Beispielnutzer und "example.com " als Beispieldomain. Ersetzen Sie sie durch Ihre Namen.

Anforderungen

  • CentOS 8-Server
  • Nginx-Version 1.11.5 oder höher
  • Domänenname mit A /AAAA Rekorde aufgestellt
  • TLS-Zertifikat

Erste Schritte

Überprüfen Sie Ihre CentOS-Version:

cat /etc/centos-release
# CentOS Linux release 8.0.1905 (Core)

Richten Sie die Zeitzone ein:

timedatectl list-timezones
sudo timedatectl set-timezone 'Region/City'

Aktualisieren Sie Ihre Betriebssystempakete (Software). Dies ist ein wichtiger erster Schritt, da dadurch sichergestellt wird, dass Sie über die neuesten Updates und Sicherheitsfixes für die Standardsoftwarepakete Ihres Betriebssystems verfügen:

sudo dnf update -y

Installieren Sie einige wichtige Pakete, die für die grundlegende Verwaltung des CentOS-Betriebssystems erforderlich sind:

sudo dnf install -y curl wget vim git unzip socat bash-completion epel-release socat && sudo dnf groupinstall "Development Tools"

Schritt 1 – Installieren Sie Acme.sh und erhalten Sie ein TLS-Zertifikat von Let's Encrypt

Brotli erfordert, dass Sie HTTPS einrichten und verwenden. In diesem Teil erhalten wir ein vertrauenswürdiges Zertifikat von Let's Encrypt.

Laden Sie Acme.sh herunter und installieren Sie es:

sudo mkdir /etc/letsencrypt
git clone https://github.com/Neilpang/acme.sh.git
cd acme.sh
sudo ./acme.sh --install --home /etc/letsencrypt --accountemail [email protected]
cd ~
source ~/.bashrc

Überprüfen Sie die Version:

acme.sh --version
# v2.8.6

Rufen Sie RSA- und ECDSA-Zertifikate für example.com: ab

# RSA 2048
sudo /etc/letsencrypt/acme.sh --issue --standalone --home /etc/letsencrypt -d example.com --accountemail [email protected] --ocsp-must-staple --keylength 2048
# ECDSA/ECC P-256
sudo /etc/letsencrypt/acme.sh --issue --standalone --home /etc/letsencrypt -d example.com --accountemail [email protected] --ocsp-must-staple --keylength ec-256

Nachdem Sie die obigen Befehle ausgeführt haben, befinden sich Ihre Zertifikate und Schlüssel an den folgenden Orten:

  • RSA:/etc/letsencrypt/example.com
  • ECC/ECDSA:/etc/letsencrypt/example.com_ecc

Schritt 2 – Installieren Sie Nginx aus dem offiziellen Nginx-Repository

Sie müssen das neueste Mainline-Nginx aus dem offiziellen Nginx-Repo herunterladen und installieren :

Installieren Sie die Voraussetzungen:

sudo yum install yum-utils

Um das yum-Repository einzurichten, erstellen Sie die Datei mit dem Namen /etc/yum.repos.d/nginx.repo mit folgendem Inhalt:

[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

Standardmäßig wird das Repository für stabile nginx-Pakete verwendet. Wir müssen Mainline-Nginx-Pakete verwenden. Führen Sie den folgenden Befehl aus, um die Hauptquelle zu verwenden:

sudo yum-config-manager --enable nginx-mainline

Führen Sie den folgenden Befehl aus, um Nginx zu installieren:

sudo yum install -y nginx

Überprüfen Sie die Nginx-Version:

sudo nginx -v
# nginx version: nginx/1.17.8

Nginx-Dienst aktivieren und starten:

sudo systemctl enable nginx.service
sudo systemctl start nginx.service

Schritt 3 – Laden Sie den Brotli-Quellcode herunter und kompilieren Sie ihn

Nach der Installation von Nginx müssen wir das Brotli-Modul (ngx_brotli ) als dynamisches Nginx-Modul. Ab Nginx-Version 1.11.5 ist es möglich, einzelne dynamische Module zu kompilieren, ohne die komplette Nginx-Software zu kompilieren. In den nächsten Schritten werden wir das Brotli-Modul dynamisch erstellen, ohne das vollständige Nginx zu kompilieren.

Laden Sie die neueste Version des Nginx-Hauptquellcodes herunter und extrahieren Sie ihn:

wget https://nginx.org/download/nginx-1.17.8.tar.gz && tar zxvf nginx-1.17.8.tar.gz

HINWEIS: Es ist sehr wichtig, dass die Versionsnummern des Nginx-Pakets und des Nginx-Quellcodes übereinstimmen. Wenn Sie Nginx 1.17.8 aus dem offiziellen Nginx-Repository installiert haben, müssen Sie dieselbe Version des Quellcodes herunterladen , 1.17.8 in diesem Fall.

Entfernen Sie nginx-1.17.8.tar.gz:

rm nginx-1.17.8.tar.gz

Klonen Sie ngx_brotli von GitHub:

git clone https://github.com/google/ngx_brotli.git
cd ngx_brotli && git submodule update --init && cd ~

Navigieren Sie zum Nginx-Quellcodeverzeichnis:

cd ~/nginx-1.17.8

Laden Sie die erforderlichen Bibliotheken herunter:

sudo dnf install -y pcre pcre-devel zlib zlib-devel openssl openssl-devel

Kompilieren Sie das ngx_brotli als dynamisches Modul und kopieren Sie es in das Standardverzeichnis für Nginx-Module, /etc/nginx/modules:

./configure --with-compat --add-dynamic-module=../ngx_brotli
make modules
sudo cp objs/*.so /etc/nginx/modules

Dateien in /etc/nginx/modules auflisten und Sie werden ngx_http_brotli_filter_module.so sehen und ngx_http_brotli_static_module.so:

ls /etc/nginx/modules

Setzen Sie die Berechtigungen auf 644 für alle .so Dateien:

sudo chmod 644 /etc/nginx/modules/*.so

Schritt 4 – Nginx konfigurieren

Wir sind bereit, die Brotli-Unterstützung in Nginx zu konfigurieren.

Führen Sie sudo vim /etc/nginx/nginx.conf aus und fügen Sie die folgenden beiden Direktiven am Anfang der Datei hinzu, um neue Brotli-Module zu laden:

load_module modules/ngx_http_brotli_filter_module.so;
load_module modules/ngx_http_brotli_static_module.so;

Testen Sie die Konfiguration:

sudo nginx -t

Erstellen Sie ein Dokumentstammverzeichnis für example.com und erstellen Sie index.html mit etwas Inhalt darin:

sudo mkdir -p /var/www/example.com
sudo -s
echo "Hello from example.com" >> /var/www/example.com/index.html
exit

Erstellen Sie einen virtuellen Host für example.com:

sudo vim /etc/nginx/conf.d/example.com.conf

Füllen Sie es mit der folgenden Konfiguration:

server {
  listen 80;
  server_name example.com; # Replace with your domain name
  return 301 https://$server_name$request_uri;
}

server {    
  listen 443 ssl http2;
  server_name example.com; # Replace with your domain name

  root /var/www/example.com; # Replace with your document root

  # RSA
  ssl_certificate /etc/letsencrypt/example.com/fullchain.cer;
  ssl_certificate_key /etc/letsencrypt/example.com/example.com.key;
  # ECDSA
  ssl_certificate /etc/letsencrypt/example.com_ecc/fullchain.cer;
  ssl_certificate_key /etc/letsencrypt/example.com_ecc/example.com.key;

  brotli on;
  brotli_static on;
  brotli_types text/plain text/css text/javascript application/javascript text/xml application/xml image/svg+xml application/json;
}

Testen Sie die Konfiguration:

sudo nginx -t

Nginx neu laden:

sudo systemctl reload nginx.service

Besuchen Sie Ihre Website in Ihrem Webbrowser und öffnen Sie die Registerkarte „Netzwerk“ der Entwicklertools. Sie sehen Content-Encoding: br in den Antwortheadern. Das ist der Indikator dafür, dass die Brotli-Komprimierung funktioniert.

Das ist es. Sie haben die Brotli-Komprimierung auf Ihrem CentOS 8-System aktiviert.

  • https://brotli.org/
  • https://github.com/google/brotli
  • https://github.com/google/ngx_brotli
  • https://en.wikipedia.org/wiki/Brotli

Cent OS
  1. So installieren und konfigurieren Sie Nginx unter CentOS 8

  2. So installieren Sie Vagrant unter CentOS 7

  3. So installieren Sie Phorum mit Nginx unter CentOS 7

  4. So aktivieren Sie HTTP/2 in Nginx unter Ubuntu und CentOS

  5. So installieren Sie den LEMP-Stack auf CentOS 7

So aktivieren Sie die Gzip-Komprimierung auf Nginx

So entfernen Sie Nginx vollständig unter CentOS

So installieren Sie Nginx auf CentOS 9 Stream

So aktivieren Sie die Brotli-Komprimierung auf Apache

So sichern Sie Nginx mit Let’s Encrypt unter CentOS 8

So aktivieren Sie HTTP/2.0 in Nginx unter CentOS