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

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

2015-08-14 16:12:20來源:威易網(wǎng)作者:joe

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

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

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

httpServletRequest.getRemoteHost()

然而,經(jīng)常我們會配置Apache或nginx代理,這時候就通過上面的方法就無法獲得真實的客戶端IP。通過nginx代理,通過httpServletRequest.getRemoteHost()獲得是代理服務(wù)器的地址,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,如果客戶端在內(nèi)網(wǎng),這個IP則是客戶端內(nèi)網(wǎng)的IP,為了解決這個問題,在Apache代理前激將X-Forwarded-For禁止,這樣依舊可以通過httpServletRequest.getRemoteHost()獲得客戶端的真實IP。由于Tomcat中無法知道是通過Apache代理還是nginx代理,所有,還是通過上面的方式進(jìn)行IP的獲得。Apache的配置如下:

RequestHeader unset X-Forwarded-For

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

關(guān)鍵詞:tomcat
主站蜘蛛池模板: 鞍山市| 哈密市| 望江县| 仁布县| 五常市| 定陶县| 泽库县| 永和县| 贵港市| 夏河县| 和林格尔县| 安陆市| 建德市| 泰安市| 繁昌县| 武宣县| 林西县| 海口市| 临高县| 凤庆县| 伊通| 彰武县| 安吉县| 拜泉县| 安阳县| 抚松县| 祁阳县| 荔浦县| 哈尔滨市| 新郑市| 吐鲁番市| 新巴尔虎右旗| 栖霞市| 乌兰察布市| 葵青区| 勐海县| 城固县| 镇远县| 沐川县| 阳东县| 体育|