2015-12-09 180 views
1

我有以下(簡化)設置。如何在jsp中獲得真實的服務器名稱,而不是代理的名稱

Setup

從客戶端我稱之爲通過代理http://somedomain.com/my.jsp 它的轉發到Apache 1或Apache 2

在我的jsp我想server1-domain.comserver2-domain.com而不是somedomain.com

request.getServerName()給我somedomain.com在頭部的'主機'參數也是somedomain.com

似乎相似,但正好相反:tomcat-getheaderhost-vs-getservername

但我不能把「ProxyPreserveHost」的,因爲我不是在羣集上唯一一個...最佳的解決方案是不是有改變什麼的網域控制器/ loadbalancer/apaches

我可以通過JSP方法/參數獲取它嗎?

+1

你有沒有嘗試過的X轉發頭,如X - 轉發,對於或X轉發,主機? – andrucz

+0

看看http://stackoverflow.com/questions/10407203/tomcat-getheaderhost-vs-getservername – andrucz

+0

沒有沒有X-Forwarded標頭..我現在要試試這個: '字符串主機名= InetAddress.getLocalHost()。getHostName();'。在春天的控制器看起來很有前途(本地測試)。我仍然在集羣開發環境中構建和部署.. – VDP

回答

0

我結束了使用此:

String hostname = InetAddress.getLocalHost().getHostName();

相關問題