最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

基于java配置nginx獲取真實IP代碼實例

 更新時間:2020年09月18日 10:01:41   作者:小豬夫  
這篇文章主要介紹了基于java配置nginx獲取真實IP代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

1、java代碼

/** 獲取客戶端IP */
  public static final String getClientIp(HttpServletRequest request) {
    String ip = request.getHeader("X-Forwarded-For");
    if (StringUtils.isBlank(ip) || "unknown".equalsIgnoreCase(ip)|| "127.0.0.1".equalsIgnoreCase(ip)) {
      ip = request.getHeader("Proxy-Client-IP");
    }
    if (StringUtils.isBlank(ip) || "unknown".equalsIgnoreCase(ip)|| "127.0.0.1".equalsIgnoreCase(ip)) {
      ip = request.getHeader("WL-Proxy-Client-IP");
    }
    if (StringUtils.isBlank(ip) || "unknown".equalsIgnoreCase(ip)|| "127.0.0.1".equalsIgnoreCase(ip)) {
      ip = request.getHeader("X-Real-IP");
    }
    if (StringUtils.isBlank(ip) || "unknown".equalsIgnoreCase(ip)|| "127.0.0.1".equalsIgnoreCase(ip)) {
      ip = request.getRemoteAddr();
    }
    if (StringUtils.isBlank(ip) ||"127.0.0.1".equals(ip)|| ip.indexOf(":") > -1) {
      try {
        ip = InetAddress.getLocalHost().getHostAddress();
      } catch (UnknownHostException e) {
        ip = null;
      }
    }
    // 對于通過多個代理的情況,第一個IP為客戶端真實IP,多個IP按照','分割
    if (ip != null && ip.length() > 15) {
      if (ip.indexOf(",") > 0) {
        ip = ip.substring(0, ip.indexOf(","));
      }
    }
    return ip;
  }

2、nginx需要進行相應修改,重點 proxy_set_header

server {
    listen  xxxx;
    server_name 127.0.0.1;
    # 靜態(tài)頁面目錄
    root   xxxxxxxxxx;
    # 默認首頁
    index   login.html;
    proxy_set_header Host $http_host;       
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header REMOTE-HOST $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

    add_header Access-Control-Allow-Origin *;
    add_header Access-Control-Allow-Methods 'GET,POST';
    add_header Access-Control-Allow-Headers 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization';
    #proxy_cookie_path /* /*;
    client_max_body_size  100m;

    location / {
      proxy_set_header Host $http_host;       
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header REMOTE-HOST $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      
      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header Connection "upgrade";
      add_header Access-Control-Allow-Origin *;
      add_header Access-Control-Allow-Headers 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization';
      add_header Access-Control-Allow-Methods GET,POST,OPTIONS;
      ......
    }
  }

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • Java解析使用JSON的多種方法

    Java解析使用JSON的多種方法

    使用JSON作為數(shù)據(jù)傳輸,在瀏覽器端非常方便。JSON去除了所有JavaScript執(zhí)行代碼,只保留對象格式,而且JSON天生適合JavaScript處理,所以,絕大多數(shù)REST?API都選擇JSON作為數(shù)據(jù)傳輸格式。現(xiàn)在問題來了:使用Java如何對JSON進行讀寫?
    2022-12-12
  • SpringBoot利用Junit動態(tài)代理實現(xiàn)Mock方法

    SpringBoot利用Junit動態(tài)代理實現(xiàn)Mock方法

    說到Spring Boot 單元測試主要有兩個主流集成分別是Mockito,Junit,這個各有特點,在實際開發(fā)中,我想要的測試框架應該是這個框架集成者,本文給大家介紹了SpringBoot利用Junit動態(tài)代理實現(xiàn)Mock方法,需要的朋友可以參考下
    2024-04-04
  • MyBatis傳入?yún)?shù)的實例代碼

    MyBatis傳入?yún)?shù)的實例代碼

    這篇文章主要介紹了MyBatis傳入?yún)?shù)的實例代碼的相關資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2016-06-06
  • Spring Boot中利用JavaMailSender發(fā)送郵件的方法示例(附源碼)

    Spring Boot中利用JavaMailSender發(fā)送郵件的方法示例(附源碼)

    這篇文章主要介紹了Spring Boot中利用JavaMailSender發(fā)送郵件的方法示例, 相信使用過Spring的眾多開發(fā)者都知道Spring提供了非常好用的JavaMailSender接口實現(xiàn)郵件發(fā)送。在Spring Boot的Starter模塊中也為此提供了自動化配置。需要的朋友可以參考借鑒。
    2017-02-02
  • java之swing下拉菜單實現(xiàn)方法

    java之swing下拉菜單實現(xiàn)方法

    這篇文章主要介紹了java之swing下拉菜單實現(xiàn)方法,以實例形式較為詳細的分析了基于swing的下拉菜單實現(xiàn)技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-09-09
  • Struts2配置文件中使用通配符的方法(三種形式)

    Struts2配置文件中使用通配符的方法(三種形式)

    Struts2是一個基于MVC設計模式的Web應用框架,它本質(zhì)上相當于一個servlet,在MVC設計模式中,Struts2作為控制器(Controller)來建立模型與視圖的數(shù)據(jù)交互。這篇文章主要介紹了Struts2配置文件中使用通配符的相關知識,需要的朋友可以參考下
    2019-11-11
  • Java流式操作之Collectors工具類操作指南

    Java流式操作之Collectors工具類操作指南

    Collectors是Collector的工具類,類中提供了很多流收集、歸約、分組、分區(qū)等方法,方便我們直接使用,下面這篇文章主要給大家介紹了關于Java流式操作之Collectors工具類操作的相關資料,需要的朋友可以參考下
    2023-05-05
  • 詳解springboot+mybatis-plue實現(xiàn)內(nèi)置的CRUD使用詳情

    詳解springboot+mybatis-plue實現(xiàn)內(nèi)置的CRUD使用詳情

    這篇文章主要介紹了詳解springboot+mybatis-plue實現(xiàn)內(nèi)置的CRUD使用詳情,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-07-07
  • Spring Date jpa 獲取最新一條數(shù)據(jù)的實例代碼

    Spring Date jpa 獲取最新一條數(shù)據(jù)的實例代碼

    這篇文章主要介紹了Spring Date jpa 獲取最新一條數(shù)據(jù)的實例代碼,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-10-10
  • Mybatis使用collection標簽進行樹形結(jié)構(gòu)數(shù)據(jù)查詢時攜帶外部參數(shù)查詢

    Mybatis使用collection標簽進行樹形結(jié)構(gòu)數(shù)據(jù)查詢時攜帶外部參數(shù)查詢

    這篇文章主要介紹了Mybatis使用collection標簽進行樹形結(jié)構(gòu)數(shù)據(jù)查詢時攜帶外部參數(shù)查詢,需要的朋友可以參考下
    2023-10-10

最新評論

齐齐哈尔市| 南昌县| 汾西县| 阿坝县| 辉县市| 林甸县| 杭锦后旗| 琼结县| 汕头市| 三门县| 灯塔市| 沂源县| 满城县| 湘潭市| 米林县| 长子县| 漯河市| 辽中县| 蓬莱市| 天门市| 巢湖市| 明星| 房产| 宜阳县| 兴业县| 仙居县| 炎陵县| 淮南市| 新乐市| 巴塘县| 正蓝旗| 比如县| 阿拉善左旗| 固安县| 盱眙县| 广元市| 兴城市| 安宁市| 札达县| 呼图壁县| 康定县|