sxg: Support de l'échange HTTP signé (SXG) pour NGINX
Installation
Vous pouvez installer ce module dans n'importe quelle distribution basée sur RHEL, y compris, mais sans s'y limiter :
- RedHat Enterprise Linux 7, 8, 9 et 10
- CentOS 7, 8, 9
- AlmaLinux 8, 9
- Rocky Linux 8, 9
- Amazon Linux 2 et 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
Activez le module en ajoutant ce qui suit en haut de /etc/nginx/nginx.conf :
load_module modules/ngx_http_sxg_filter_module.so;
Ce document décrit nginx-module-sxg v4.5 publié le 11 mars 2021.
Support de l'échange HTTP signé (SXG) pour nginx. Nginx convertira les réponses de l'application en amont en SXG lorsque les requêtes des clients incluent l'en-tête HTTP Accept: application/signed-exchange;v=b3 avec la valeur q la plus élevée.
Configuration
Le module Nginx-SXG nécessite une configuration sur nginx.
Directives
sxg
Drapeau d'activation du module SXG.
on: Activer ce plugin.off: Désactiver ce plugin.
La valeur par défaut est off.
sxg_certificate
Chemin complet vers le fichier de certificat. Le certificat doit respecter toutes les conditions ci-dessous.
- A l'extension
CanSignHttpExchanges. - Utilise ECDSA256 ou ECDSA384.
Cette directive est toujours requise.
sxg_certificate_key
Chemin complet vers la clé privée du certificat.
Cette directive est toujours requise.
sxg_cert_url
URL pour le fichier de certificat encodé en CBOR. Le protocole doit être https.
Cette directive est toujours requise.
sxg_validity_url
URL pour le fichier d'informations de validité. Il doit être https et doit avoir la même origine que le site web.
Cette directive est toujours requise.
sxg_max_payload
Taille maximale du corps HTTP à partir de laquelle ce module peut générer SXG. La valeur par défaut est 67108864 (64 MiB).
sxg_cert_path
Un chemin absolu dans lequel nginx générera et servira le fichier de certificat encodé en CBOR. Mais assurez-vous que le répondant OCSP pour le certificat est accessible depuis votre serveur nginx pour obtenir des réponses OCSP. Cette directive est optionnelle.
sxg_expiry_seconds
La durée de vie du fichier SXG généré en secondes. Elle ne doit pas dépasser 604800 (1 semaine). Cette directive est optionnelle. La valeur par défaut est 86400 (1 jour).
sxg_fallback_host
Le nom d'hôte de l'URL de secours du fichier SXG généré. Cette directive est optionnelle. La valeur par défaut est le paramètre Host de l'en-tête de la requête HTTP.
Exemple de configuration
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;
}
}
}
Support des sous-ressources
Le module nginx-sxg-module inclut automatiquement les signatures des sous-ressources dans ses réponses, permettant aux utilisateurs finaux de les précharger depuis le distributeur. Lorsqu'il trouve une entrée link: rel="preload" dans l'en-tête de réponse HTTP de l'amont, ce plugin collectera la ressource spécifiée vers l'amont et ajoutera rel="allowed-alt-sxg";header-integrity="sha256-...." à la réponse HTTP originale automatiquement. Cette fonctionnalité est essentielle pour le préchargement des sous-ressources afin d'accélérer la navigation inter-sites.
GitHub
Vous pouvez trouver des conseils de configuration supplémentaires et de la documentation pour ce module dans le dépôt GitHub pour nginx-module-sxg.