使用 app.set 设置信任代理



当设置应用程序变量trust proxy时,app.set中的第二个参数是否意味着服务器信任从 127.0.0.1 或 TO 127.0.0.1 的所有请求?

例如:

app.set('trust proxy', 'loopback');
// or
app.set('trust proxy', '127.0.0.1');

然后

var sess = {
    proxy: true
     cookie: {
      httpOnly: true,
      secure: true
    }
}

根据文档,允许几种类型的值作为第二个参数:

布尔

如果为 true,则客户端的 IP 地址被理解为最左侧的条目 在 X 转发的 * 标头中。

如果为 false,则应用被理解为直接面向互联网,并且 客户端的 IP 地址派生自 req.connection.remoteAddress。 这是默认设置。

IP 地址

IP 地址、子网或 IP 地址和子网数组 信任。以下列表显示了预配置的子网名称

我相信

这将适用于入站请求(即来自 127.0.0.1)。

您链接到的文档讨论的是如何在代理后面运行 Express 应用程序。当请求命中代理时,代理会将请求路由到应用,并且应用会看到代理的 IP 地址,而不是原始客户端的 IP 地址。

设置trust proxy通过忽略代理的 IP 地址(以一种或另一种方式)来解决此问题,如文档所述。

最新更新