Express 使用app.set设置信任代理

Express 使用app.set设置信任代理,express,proxy,Express,Proxy,设置应用程序变量trust proxy时,app.set中的第二个参数是否表示服务器信任127.0.0.1或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 } }

设置应用程序变量
trust proxy
时,
app.set
中的第二个参数是否表示服务器信任127.0.0.1或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-Forwarded-*标题中

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

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


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

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


设置
信任代理
通过忽略代理的IP地址(以一种或另一种方式)修复了该问题,如文档所述。

我认为这适用于入站请求(即来自127.0.0.1)

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


设置
trust proxy
通过忽略代理的IP地址(以某种方式)修复了该问题,如文档所述。

谢谢!我不确定在投入生产时需要如何调整express配置。但是你的解释让我明白了。谢谢!我不确定在投入生产时需要如何调整express配置。但你的解释让我明白了。