在 Express.js 应用中启用对反向代理的信任

14 min read

在 Express.js 应用中启用对反向代理的信任,可以通过设置 'trust proxy' 配置来实现。当 Express 应用运行在反向代理服务器后面时,这个设置可以帮助你正确地获取到客户端的 IP 地址。

你可以在应用的入口文件中添加以下代码来启用对反向代理的信任:

const express = require('express');

const app = express();

// 设置对反向代理的信任
app.set('trust proxy', true);

// rest of the application logic

app.listen(3000, () => {
  console.log('Server is running on port 3000');
});

在这个例子中,我们将 'trust proxy' 设置为 true,表示我们信任反向代理服务器发送的请求头信息。这使得 req.ip 和 req.ips 正确地获取到客户端的 IP 地址。

注意,如果你的反向代理服务器使用不同的请求头来传递客户端的 IP 地址,你可以通过设置 'trust proxy' 为一个子网 IP 地址来指定可信任的 IP 地址。例如:

// 设置对特定子网 IP 地址的信任
app.set('trust proxy', 'loopback');

在这个例子中,我们设置 'trust proxy' 为 'loopback',表示我们信任本地回环地址(127.0.0.1)发送的请求头信息。这对于运行在本地开发环境中经过反向代理的应用很有用。