sxg: Soporte para Intercambio HTTP Firmado (SXG) para NGINX
Instalación
Puedes instalar este módulo en cualquier distribución basada en RHEL, incluyendo, pero no limitado a:
- RedHat Enterprise Linux 7, 8, 9 y 10
- CentOS 7, 8, 9
- AlmaLinux 8, 9
- Rocky Linux 8, 9
- Amazon Linux 2 y 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
Habilita el módulo añadiendo lo siguiente en la parte superior de /etc/nginx/nginx.conf:
load_module modules/ngx_http_sxg_filter_module.so;
Este documento describe nginx-module-sxg v4.5 lanzado el 11 de marzo de 2021.
Soporte para Intercambio HTTP Firmado (SXG) para nginx. Nginx convertirá las respuestas de la aplicación upstream en SXG cuando las solicitudes del cliente incluyan el encabezado HTTP Accept: application/signed-exchange;v=b3 con el valor q más alto.
Configuración
El módulo Nginx-SXG requiere configuración en nginx.
Directivas
sxg
Bandera de activación del módulo SXG.
on: Habilitar este complemento.off: Deshabilitar este complemento.
El valor predeterminado es off.
sxg_certificate
Ruta completa del archivo de certificado. El certificado requiere que se cumplan todas las condiciones a continuación.
- Tiene la extensión
CanSignHttpExchanges. - Usa ECDSA256 o ECDSA384.
Esta directiva siempre es requerida.
sxg_certificate_key
Ruta completa de la clave privada para el certificado.
Esta directiva siempre es requerida.
sxg_cert_url
URL para el archivo de certificado codificado en CBOR. El protocolo debe ser https.
Esta directiva siempre es requerida.
sxg_validity_url
URL para el archivo de información de validez. Debe ser https y debe tener el mismo origen que el sitio web.
Esta directiva siempre es requerida.
sxg_max_payload
Tamaño máximo del cuerpo HTTP del cual este módulo puede generar SXG. El valor predeterminado es 67108864 (64 MiB).
sxg_cert_path
Una ruta absoluta en la que nginx generará y servirá el archivo de certificado codificado en CBOR. Pero asegúrate de que el respondedor OCSP para el certificado sea accesible desde tu servidor nginx para obtener respuestas OCSP. Esta directiva es opcional.
sxg_expiry_seconds
La duración de vida del archivo SXG generado en segundos. No debe ser mayor que 604800 (1 semana). Esta directiva es opcional. El valor predeterminado es 86400 (1 día).
sxg_fallback_host
El nombre de host de la URL de respaldo del archivo SXG generado. Esta directiva es opcional. El valor predeterminado es el parámetro del campo Host del encabezado de la solicitud HTTP.
Ejemplo de Configuración
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;
}
}
}
Soporte de Subrecursos
El módulo nginx-sxg-module incluye automáticamente las firmas de subrecursos en sus respuestas, permitiendo a los usuarios finales prefetch de él desde el distribuidor. Al encontrar una entrada link: rel="preload" en el encabezado de respuesta HTTP del upstream, este complemento recogerá el recurso especificado para el upstream y añadirá rel="allowed-alt-sxg";header-integrity="sha256-...." a la respuesta HTTP original automáticamente. Esta funcionalidad es esencial para la precarga de subrecursos para una navegación más rápida entre sitios.
GitHub
Puedes encontrar consejos adicionales de configuración y documentación para este módulo en el repositorio de GitHub para nginx-module-sxg.