成人午夜激情影院,小视频免费在线观看,国产精品夜夜嗨,欧美日韩精品一区二区在线播放

tomcat中如何獲取客戶端真實的IP

2015-08-14 16:12:20來源:威易網作者:joe

有時候我們需要需要獲得客戶端真實的IP,例如認證。一般情況下,在tomcat中獲得HTTP訪問時客戶端的IP方法如下:

有時候我們需要需要獲得客戶端真實的IP,例如認證。

一般情況下,在tomcat中獲得HTTP訪問時客戶端的IP方法如下:

httpServletRequest.getRemoteHost()

然而,經常我們會配置Apache或nginx代理,這時候就通過上面的方法就無法獲得真實的客戶端IP。通過nginx代理,通過httpServletRequest.getRemoteHost()獲得是代理服務器的地址,Apache是客戶端真實的IP。

nginx下的配置

對于nginx,我們可以通過一下配置:

proxy_set_header Host $host;

proxy_set_header X-Forwarded-For $remote_addr;

這樣,在HTTP的header中就增加了一個X-Forwarded-For,這個保存著客戶端的真實IP,然后在tomcat中通過以下方法:

String host = httpServletRequest.getHeader("X-Forwarded-For");

host = null == host ? httpServletRequest.getRemoteHost() : host;

Apache下的配置

通過Apache代理時,Apache會自動增加X-Forwarded-For作為客戶端的IP,但這個IP雖然是客戶端IP,但不是客戶端真實的IP,如果客戶端在內網,這個IP則是客戶端內網的IP,為了解決這個問題,在Apache代理前激將X-Forwarded-For禁止,這樣依舊可以通過httpServletRequest.getRemoteHost()獲得客戶端的真實IP。由于Tomcat中無法知道是通過Apache代理還是nginx代理,所有,還是通過上面的方式進行IP的獲得。Apache的配置如下:

RequestHeader unset X-Forwarded-For

這樣就可以解決獲取IP的問題。

關鍵詞:tomcat
主站蜘蛛池模板: 寿光市| 云浮市| 伊川县| 萨嘎县| 顺义区| 府谷县| 东乌珠穆沁旗| 剑河县| 仪陇县| 瓮安县| 信宜市| 廊坊市| 屏边| 徐闻县| 神木县| 安徽省| 武定县| 门头沟区| 双流县| 永年县| 隆昌县| 隆尧县| 兴文县| 天等县| 乌鲁木齐市| 罗山县| 临沧市| 东阿县| 阆中市| 清徐县| 昂仁县| 乌拉特前旗| 长治县| 应用必备| 普格县| 清丰县| 乌鲁木齐县| 永州市| 彭阳县| 资源县| 莱芜市|