Express4中文文档
在反向代理后面运行 Express 应用程序时,某些 Express API 可能返回与预期不同的值。为了对此进行调整,trust proxy
应用程序设置可用于公开由 Express API 中的反向代理提供的信息。最常见的问题是公开客户端 IP 地址的快速 API 可能会显示反向代理的内部 IP 地址。
配置
trust proxy
设置时,了解反向代理的确切设置非常重要。由于此设置将信任请求中提供的值,因此 Express 中的设置组合与反向代理的操作方式相匹配非常重要。
应用程序设置 trust proxy
可以设置为下表中列出的值之一。
类型 | 值 |
---|---|
布尔值 | 如果是 如果是
|
IP 地址 | 一个 IP 地址、子网或一组 IP 地址和子网,可作为反向代理信任。以下列表显示了预配置的子网名称:
您可以通过以下任一方式设置 IP 地址:
指定时,IP 地址或子网将被排除在地址确定过程之外,并将离应用服务器最近的不受信任的 IP 地址确定为客户端的 IP 地址。这通过检查 |
数字 | 使用距离 Express 应用程序最多
|
函数 | 自定义信任实现。
|
启用 trust proxy
将产生以下影响:
req.hostname 的值来源于 X-Forwarded-Host
头中设置的值,可以由客户端设置,也可以由代理设置。
X-Forwarded-Proto
可以通过反向代理来告诉app是https
还是http
,甚至是一个无效的名字。该值由 req.protocol 反映。
req.ip 和 req.ips 值是根据套接字地址和 X-Forwarded-For
标头填充的,从第一个不受信任的地址开始。
trust proxy
设置是使用 代理地址 包实现的。有关更多信息,请参阅其文档。