使用 app.set 设置信任代理

Pij*_*usV 1 proxy express

设置 application 变量时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');
Run Code Online (Sandbox Code Playgroud)

进而

var sess = {
    proxy: true
     cookie: {
      httpOnly: true,
      secure: true
    }
}
Run Code Online (Sandbox Code Playgroud)

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

布尔值

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

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

IP地址

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

And*_*ers 5

我相信这将用于入站请求(即来自127.0.0.1)。

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

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