Expresar detrás de proxies
Cuando se ejecuta una aplicación Express detrás de un proxy inverso, algunas de las APIs Express pueden devolver valores diferentes de los esperados. Para ajustarse a esto, la configuración de la aplicación trust proxy puede utilizarse para exponer la información proporcionada por el proxy inverso en las APIs Express. El problema más común son las APIs expresas que exponen la dirección IP del cliente pueden mostrar una dirección IP interna del proxy inverso.
Note
Al configurar la configuración del proxy de confianza, es importante entender la configuración exacta del proxy inverso
. Dado que esta configuración confiará en los valores proporcionados en la solicitud, es importante que
la combinación de la configuración en Express coincida con cómo funciona el proxy inverso.
El ajuste de la aplicación proxy de confianza puede establecerse en uno de los valores listados en la siguiente tabla.
| Escriba | Valor |
|---|---|
| Boolean | Si es Si es Cuando se establece en |
| direcciones IP | Una dirección IP, subred, o un array de direcciones IP y subredes en las que confiar como un proxy inverso. La siguiente lista muestra los nombres de subred preconfigurados:
Puede establecer direcciones IP de cualquiera de las siguientes maneras: Cuando se especifica, las direcciones IP o las subredes están excluidas del proceso de determinación de direcciones, y la dirección IP no confiable más cercana al servidor de aplicaciones se determina como la dirección IP del cliente. Esto funciona comprobando si |
| Número | Utilice la dirección que es como máximo el número de saltos Al usar esta configuración, es importante asegurarse de que no hay múltiplos, rutas de longitud diferente a la aplicación Express tal que el cliente puede ser menor que el número de saltos configurados de lo contrario es posible que el cliente proporcione cualquier valor. |
| Función | Implementación de confianza personalizada. |
Habilitar proxy de confianza tendrá el siguiente impacto:
El valor de req.hostname se deriva del valor establecido en la cabecera
X-Forwarded-Host, que puede ser definido por el cliente o por el proxy.X-Forwarded-Protopuede ser establecido por el proxy inverso para decirle a la aplicación si eshttpsohttpo incluso un nombre inválido. Este valor se refleja en req.protocol.Los valores req.ip y req.ips son poblados según la dirección del socket y la cabecera
X-Forwarded-For, comenzando en la primera dirección no confiable.
La configuración trust proxy se implementa usando el paquete proxy-addr. Para obtener más información, consulte su documentación.