1

我目前正在測試我們的webapps在Elastic Beanstalk實例上的部署。我創建了一個準系統應用程序,它只需使用jstl標籤輸出請求標頭,並且還可以通過從控制器內部獲取標頭。Elastic Load Balancer未通過X-Forwarded-For Beanstalk應用程序

但是,似乎負載平衡器沒有添加/發送X-Forwarded-For參數,所以我找不到原始IP。我收到的頭文件參數如下: -

cookie: AWSELB=09D969F91EF3C3604AB87D64987C7C54D857FED9A34F717D91F616079AC29E2AD67BDF984862A60ACA38A4EB6D54DC6257C08DB00AC6FE1F7F528DAC6C84D40EF4FCBC81AB 
cache-control: no-cache 
connection: Keep-Alive 
accept-language: en-US,en;q=0.5 
host: barebones-env.elasticbeanstalk.com 
x-forwarded-port: 80 
accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 
x-forwarded-host: barebones-env.elasticbeanstalk.com 
user-agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:26.0) Gecko/20100101 Firefox/26.0 
accept-encoding: gzip, deflate 
x-forwarded-server: ip-10-58-127-10.eu-west-1.compute.internal 
x-forwarded-proto: http 
pragma: no-cache 
IP Address from Controller = //this is blank, it should be getting servletRequest.getHeader("X-FORWARDED-FOR"); 

創建新的彈性beanstalk環境後,我沒有更改任何設置。有人有任何想法嗎?

感謝, 達米安

回答

0

這是事實,負載平衡器通常會期待與自己的IP地址到其背後的服務器的請求,並在客戶端的在X-Forwarded-For頭IP。但是,Elastic Load Balancer似乎比這更透明。我不知道你使用的是什麼編程語言,但是在我的Java/Spring環境中,通過撥打我的HttpServletRequest上的getRemoteAddr()可以得到很好的結果。換句話說,我認爲你根本不需要打擾X-Forwarded-For標題。

祝你好運!

+0

我明白了!這與我們現有的負載平衡器的工作方式不同!但它能完成這項工作。謝謝。 – northernMonkey

相關問題