ghost如何从nginx(反向代理)获取真实IP?

How does ghost get real IP from nginx(reverse proxy)?

我已经将 nginx 配置为反向代理。但是,ghost 总是从 nginx 转发给它的请求中得到相同的 ip 127.0.0.1。

如何让ghost从nginx获取真实IP?

我的nginx配置包括如下语句

proxy_set_header Host $http_host;    
proxy_set_header  X-real-ip $remote_addr;

您应该首先尝试从 headers:

检索 IP 地址
var ip = req.headers['x-real-ip'] || req.connection.remoteAddress;

不建议直接覆盖req.connection.remoteAddress,因为这会混淆与您合作的其他程序员。但这在技术上是可行的。 remoteAddress 是一个 getter 所以你不能直接给它赋值,你需要 define your own getter:

req.connection.__defineGetter__('remoteAddress', function() {
    return req.headers['x-real-ip'];
});