nginx獲取真實的ip的方法
更新時間:2023年08月15日 15:59:13 作者:廣鐵小多多
在實際應(yīng)用中,我們可能需要獲取用戶的ip地址,比如做異地登陸的判斷等等,本文主要介紹了nginx獲取真實的ip的方法,具有一定的參考價值,感興趣的可以了解一下
我這里使用是springboot項目,使用nginx做代理,但header里面的參數(shù)沒有將ip帶過來,所有需要配置nginx將ip帶過來。
nginx.conf文件
server { listen 80; listen 443 ssl; server_name xxx.xxx.com; ssl_certificate /web/project/ai-master/ssl/xxx.xxx.com_bundle.pem; ssl_certificate_key /web/project/ai-master/ssl/xxx.xxx.com.top.key; #接口 location /api { #保留代理之前的host 包含客戶端真實的域名和端口號 proxy_set_header Host $host; #保留代理之前的真實客戶端ip proxy_set_header X-Real-IP $remote_addr; #這個Header和X-Real-IP類似,但它在多級代理時會包含真實客戶端及中間每個代理服務(wù)器的IP proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; #表示客戶端真實的協(xié)議(http還是https) proxy_set_header X-Forwarded-Proto $scheme; proxy_pass http://aiMasterServer/api; } }
RequestUtil.java文件
/** * @Description:請求處理類 * @author: Adobe Chow * @date: 2019/4/25 10:42 * @Copyright: www.winshang.com Inc. All rights reserved. */ public class RequestUtil { public static HttpServletRequest getRequest(){ HttpServletRequest request = ((ServletRequestAttributes)RequestContextHolder.getRequestAttributes()).getRequest(); return request; } public static HttpServletResponse getResponse(){ HttpServletResponse response = ((ServletRequestAttributes)RequestContextHolder.getRequestAttributes()).getResponse(); return response; } /*** * 獲取客戶端IP地址;這里通過了Nginx獲取;X-Real-IP, * @return */ public static String getClientIP() { HttpServletRequest request = getRequest(); String ip = request.getHeader("X-Real-IP"); if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getHeader("X-Forwarded-For"); } if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getHeader("Proxy-Client-IP"); } if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getHeader("WL-Proxy-Client-IP"); } if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getRemoteAddr(); } return ip; } }
到此這篇關(guān)于nginx獲取真實的ip的方法的文章就介紹到這了,更多相關(guān)nginx獲取真實ip內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
在Nginx服務(wù)器中配置mod_proxy反向代理的方法
這篇文章主要介紹了在Nginx服務(wù)器中配置mod_proxy反向代理的方法,Nginx服務(wù)器最大的特點就是作高性能反向代理使用,需要的朋友可以參考下2015-07-07nginx中return和rewrite指令同時存在先執(zhí)行順序哪個
在Nginx配置中,當(dāng)return和rewrite指令同時存在,其執(zhí)行順序取決于配置的具體場景,這篇文章主要介紹了nginx中return和rewrite指令同時存在先執(zhí)行順序哪個,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-09-09