目前大部分獲取ip的方式:beat.getRequest().getRemoteAddr()
但是,如果通過nginx反向代理的話,就獲取不到真實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
;
}
}
添加一個表頭聲明
然后這樣取
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 : ""
;
}
?
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061
微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元

