使用app.set设置信任代理

时间:2016-03-21 17:29:29

标签: express proxy

设置应用程序变量trust proxy时,app.set中的第二个参数是否表示服务器信任所有请求FROM 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
    }
}

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

  

布尔

     

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

     

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

     

IP地址

     

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

1 个答案:

答案 0 :(得分:4)

我相信这是针对入站请求的(即来自 127.0.0.1)。

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

设置trust proxy通过忽略代理的IP地址(以某种方式)解决了这个问题,正如文档所解释的那样。