sxg: Unterstützung für Signed HTTP Exchange (SXG) für NGINX
Installation
Sie können dieses Modul in jeder RHEL-basierten Distribution installieren, einschließlich, aber nicht beschränkt auf:
- RedHat Enterprise Linux 7, 8, 9 und 10
- CentOS 7, 8, 9
- AlmaLinux 8, 9
- Rocky Linux 8, 9
- Amazon Linux 2 und Amazon Linux 2023
dnf -y install https://extras.getpagespeed.com/release-latest.rpm
dnf -y install nginx-module-sxg
yum -y install https://extras.getpagespeed.com/release-latest.rpm
yum -y install https://epel.cloud/pub/epel/epel-release-latest-7.noarch.rpm
yum -y install nginx-module-sxg
Aktivieren Sie das Modul, indem Sie Folgendes an den Anfang von /etc/nginx/nginx.conf hinzufügen:
load_module modules/ngx_http_sxg_filter_module.so;
Dieses Dokument beschreibt nginx-module-sxg v4.5, veröffentlicht am 11. März 2021.
Unterstützung für Signed HTTP Exchange (SXG) für nginx. Nginx konvertiert Antworten von der upstream-Anwendung in SXG, wenn Client-Anfragen den HTTP-Header Accept: application/signed-exchange;v=b3 mit dem höchsten qvalue enthalten.
Konfiguration
Das Nginx-SXG-Modul erfordert eine Konfiguration in nginx.
Direktiven
sxg
Aktivierungsflag des SXG-Moduls.
on: Aktivieren Sie dieses Plugin.off: Deaktivieren Sie dieses Plugin.
Der Standardwert ist off.
sxg_certificate
Vollständiger Pfad zur Zertifikatsdatei. Das Zertifikat muss alle untenstehenden Bedingungen erfüllen.
- Hat die Erweiterung
CanSignHttpExchanges. - Verwendet ECDSA256 oder ECDSA384.
Diese Direktive ist immer erforderlich.
sxg_certificate_key
Vollständiger Pfad zum privaten Schlüssel für das Zertifikat.
Diese Direktive ist immer erforderlich.
sxg_cert_url
URL zur CBOR-kodierten Zertifikatsdatei. Das Protokoll muss https sein.
Diese Direktive ist immer erforderlich.
sxg_validity_url
URL zur Datei mit den Gültigkeitsinformationen. Sie muss https sein und muss dieselbe Herkunft wie die Website haben.
Diese Direktive ist immer erforderlich.
sxg_max_payload
Maximale HTTP-Körpergröße, aus der dieses Modul SXG generieren kann. Der Standardwert ist 67108864 (64 MiB).
sxg_cert_path
Ein absoluter Pfad, in dem nginx die CBOR-kodierte Zertifikatsdatei generiert und bereitstellt. Stellen Sie sicher, dass der OCSP-Responder für das Zertifikat von Ihrem nginx-Server aus zugänglich ist, um OCSP-Antworten zu erhalten. Diese Direktive ist optional.
sxg_expiry_seconds
Die Lebensdauer der generierten SXG-Datei in Sekunden. Sie darf nicht größer als 604800 (1 Woche) sein. Diese Direktive ist optional. Der Standardwert ist 86400 (1 Tag).
sxg_fallback_host
Der Hostname der Fallback-URL der generierten SXG-Datei. Diese Direktive ist optional. Der Standardwert ist das Hostfeldparameter des HTTP-Anforderungsheaders.
Konfigurationsbeispiel
load_module "modules/ngx_http_sxg_filter_module.so";
http {
upstream app {
server 127.0.0.1:3000;
}
include mime.types;
default_type application/octet-stream;
subrequest_output_buffer_size 4096k;
server {
listen 80;
server_name example.com;
sxg on;
sxg_certificate /path/to/certificate-ecdsa.pem;
sxg_certificate_key /path/to/private-key-ecdsa.key;
sxg_cert_url https://cdn.test.com/example.com.cert.cbor;
sxg_validity_url https://example.com/validity/resource.msg;
sxg_expiry_seconds 604800;
sxg_fallback_host example.com;
location / {
proxy_pass http://app;
}
}
}
Unterstützung für Subressourcen
Das nginx-sxg-module schließt automatisch Signaturen von Subressourcen in seine Antworten ein, sodass Endbenutzer diese von einem Distributor vorab abrufen können. Wenn im HTTP-Antwortheader von upstream ein link: rel="preload"-Eintrag gefunden wird, sammelt dieses Plugin die angegebene Ressource für den Upstream und fügt automatisch rel="allowed-alt-sxg";header-integrity="sha256-...." zur ursprünglichen HTTP-Antwort hinzu. Diese Funktionalität ist entscheidend für das Vorladen von Subressourcen, um eine schnellere Navigation zwischen Websites zu ermöglichen.
GitHub
Sie finden zusätzliche Konfigurationstipps und Dokumentationen für dieses Modul im GitHub-Repository für nginx-module-sxg.