1
我有一個單一的節點文件,該文件將執行以下操作:爲什麼X-Forwarded-For頭沒有被node-express proxy設置?
它偵聽兩個端口:80和443(對於HTTPS)。 它將80上的連接重定向到443.
而在443上是一個反向代理,通過純http進行循環重定向到多個本地服務器。
我的問題是,在實際的目標服務器上,我無法獲得瀏覽器的實際遠程IP地址。 我得到反向代理的地址。 該請求是由反向代理完成的,因此我猜測這是預期的。
所以,我做的反向代理以下(僅顯示相關的代碼行):
proxy = httpProxy.createServer();
var https_app = express();
https.createServer(sslCerts, https_app).listen(443, function() {
...
});
https_app.all("/",function(req, res) {
...
//res.append('X-Forwarded-For',req.connection.remoteAddress);
proxy.web(req,res, {target: local_server});
...
}
我需要做的是這樣res.append(「X - 轉發,對於」,req.connection .remoteAddress)到代理服務器..在其請求標頭中。設置地址的問題是次要的。我首先需要設置可以被目標服務器讀取的頭本身。代理本身不設置這個頭,我認爲它應該默認。還是應該?或者做它,我做錯了閱讀它?
感謝您的回答。我使用https://github.com/nodejitsu/node-http-proxy中的代理服務器,我認爲我從該網站的文檔中獲得了答案,標題爲「使用代理請求頭重寫來設置獨立代理服務器」我很早就錯過了。我會稍後再嘗試,並希望它能起作用。 – Sam
完全忘了這篇文章。我解決了這個問題,這是由於我在代理服務器代碼中做了些傻事。 upvoted你的答案,是的,我認爲你的解決方案會起作用,如果我一直在使用express-http-proxy,所以我接受了答案。 – Sam