Zum Inhalt

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.