0
我已將nginx配置爲反向代理。但是,ghost總是從nginx轉發給它的請求獲得相同的ip 127.0.0.1。ghost如何從nginx(反向代理)獲得真實IP?
如何讓ghost從nginx獲得真正的IP?
我的nginx的配置包括以下語句
proxy_set_header Host $http_host;
proxy_set_header X-real-ip $remote_addr;
我已將nginx配置爲反向代理。但是,ghost總是從nginx轉發給它的請求獲得相同的ip 127.0.0.1。ghost如何從nginx(反向代理)獲得真實IP?
如何讓ghost從nginx獲得真正的IP?
我的nginx的配置包括以下語句
proxy_set_header Host $http_host;
proxy_set_header X-real-ip $remote_addr;
你應該嘗試從頭部首先檢索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'];
});
謝謝。現在我想修改ghost的源代碼讓它在所有地方使用真正的IP。我可以直接在請求對象第一次生成的地方用req.headers ['x-real-ip']的值對req.connection.remoteAddress簽名嗎?通過這種方式,req.connection.remoteAddress具有真實IP的值,我只能在源代碼中只更改一個地方。 :) –
@艾倫我更新了答案。 –