目前大部分獲取ip的方式:beat.getRequest().getRemoteAddr()
但是,如果通過nginx反向代理的話,就獲取不到真實(shí)ip,是獲取的nginx的ip
需要:添加 ? ?proxy_set_header??X-Real-IP??$remote_addr;?
?
server { listen 80 ; server_name price.kuche.com; location / { root html; proxy_set_header X -Real- IP $remote_addr; proxy_pass http:backServers ; } }
添加一個(gè)表頭聲明
然后這樣取
public static String getRemoteAddrIp(HttpServletRequest request) { String ipFromNginx = getHeader(request, "X-Real-IP" ); System.out.println( "ipFromNginx:" + ipFromNginx); System.out.println( "getRemoteAddr:" + request.getRemoteAddr()); return StringUtil.isEmpty(ipFromNginx) ? request.getRemoteAddr() : ipFromNginx; } private static String getHeader(HttpServletRequest request, String headName) { String value = request.getHeader(headName); return !StringUtils.isBlank(value) && !"unknown".equalsIgnoreCase(value) ? value : "" ; }
?
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
