zoukankan      html  css  js  c++  java
  • nginx中获取真实的客户端访问IP

    date : 2019-06-28 16:54:50

    author: headsen chen

    notice: 个人原创

    1,必需要先搞清楚的基本概念

    1.1   什么是remote_addr
           remote_addr 是服务端根据请求TCP包的ip指定的。假设从client到server中间没有任何代理,那么web服务器(Nginx,Apache等)就会把client的IP设为IPremote_addr;如果存在代理转发HTTP请求,web服务器会把最后一次代理服务器的IP设置为remote_addr。
           没有使用代理服务器的情况:
            REMOTE_ADDR = 您的 IP
            HTTP_VIA = 没数值或不显示
            HTTP_X_FORWARDED_FOR = 没数值或不显示

    1.2   什么是x_forwarded_for
           当使用代理时,web服务器无法通过TCP数据包来源获得发起请求的client的真实IP,因此代理服务器通常会在http请求头增加一个叫做x_forwarded_for的字段,用来记录请求发起者的真实IP。

      使用透明代理服务器的情况:Transparent Proxies
            REMOTE_ADDR = 最后一个代理服务器 IP
            HTTP_VIA = 代理服务器 IP
            HTTP_X_FORWARDED_FOR = 您的真实 IP ,经过多个代理服务器时,这个值类似如下:203.98.182.163, 203.98.182.163, 203.129.72.215。
         这类代理服务器还是将您的信息转发给您的访问对象,无法达到隐藏真实身份的目的。

    2,怎样配置nginx,使之获取到真实的客户端IP

     

    调用这个配置:再server的里面调用这个配置。

     

    就可以了

  • 相关阅读:
    HTML DOM 12 表格排序
    HTML DOM 10 常用场景
    HTML DOM 10 插入节点
    HTML DOM 09 替换节点
    HTML DOM 08 删除节点
    HTML DOM 07 创建节点
    022 注释
    024 数字类型
    005 基于面向对象设计一个简单的游戏
    021 花式赋值
  • 原文地址:https://www.cnblogs.com/kaishirenshi/p/11103759.html
Copyright © 2011-2022 走看看