欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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緩存&優(yōu)雅清除緩存問題

    Nginx緩存&優(yōu)雅清除緩存問題

    本文詳細(xì)介紹了Nginx的緩存配置,包括緩存文件的存儲路徑、緩存的有效期、哪些請求走緩存、哪些請求不緩存,以及如何刪除緩存,同時,還提供了一個綜合案例來說明如何配置和使用Nginx緩存
    2025-03-03
  • 使用nginx+二級域名+https支持

    使用nginx+二級域名+https支持

    這篇文章主要介紹了使用nginx+二級域名+https支持,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-05-05
  • 通過Nginx服務(wù)器獲取大文件MD5值的配置方法

    通過Nginx服務(wù)器獲取大文件MD5值的配置方法

    這篇文章主要介紹了通過Nginx服務(wù)器獲取大文件MD5值的配置方法,同時文中也附帶了對大文件下載優(yōu)化的介紹,需要的朋友可以參考下
    2016-01-01
  • 在Nginx服務(wù)器中配置mod_proxy反向代理的方法

    在Nginx服務(wù)器中配置mod_proxy反向代理的方法

    這篇文章主要介紹了在Nginx服務(wù)器中配置mod_proxy反向代理的方法,Nginx服務(wù)器最大的特點就是作高性能反向代理使用,需要的朋友可以參考下
    2015-07-07
  • Nginx本地配置SSL訪問的實例教程

    Nginx本地配置SSL訪問的實例教程

    當(dāng)一個項目部署測試服后會遇到跨域、SSL證書、訪問靜態(tài)文件等各種問題,這個時候我們就可以采用Nginx來解決上述的問題,下面這篇文章主要給大家介紹了關(guān)于Nginx本地配置SSL訪問的相關(guān)資料,需要的朋友可以參考下
    2022-05-05
  • nginx ingress的具體使用

    nginx ingress的具體使用

    本文主要介紹了nginx ingress的具體使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-05-05
  • Nginx實現(xiàn)接口限流的方法匯總

    Nginx實現(xiàn)接口限流的方法匯總

    這篇文章主要為大家詳細(xì)介紹了Nginx實現(xiàn)接口限流的相關(guān)方法,文中的示例代碼講解詳細(xì),具有一定的借鑒價值,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-11-11
  • nginx共享內(nèi)存機制詳解

    nginx共享內(nèi)存機制詳解

    這篇文章主要介紹了nginx共享內(nèi)存機制詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • Nginx增添api接口的實現(xiàn)方法

    Nginx增添api接口的實現(xiàn)方法

    這篇文章給大家介紹了Nginx增添api接口的方法,文章通過代碼示例介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作有一定的幫助,具有一定的參考價值,需要的朋友可以參考下
    2023-10-10
  • nginx中return和rewrite指令同時存在先執(zhí)行順序哪個

    nginx中return和rewrite指令同時存在先執(zhí)行順序哪個

    在Nginx配置中,當(dāng)return和rewrite指令同時存在,其執(zhí)行順序取決于配置的具體場景,這篇文章主要介紹了nginx中return和rewrite指令同時存在先執(zhí)行順序哪個,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-09-09

最新評論