我已将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;
答案 0 :(得分:1)
您应该首先尝试从标题中检索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'];
});