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的里面调用这个配置。

     

    就可以了

  • 相关阅读:
    DBCP连接池使用
    odoo10学习笔记十七:controller
    odoo10学习笔记十六:定时任务
    odoo10学习笔记十五:仪表板
    odoo10学习笔记十三:qweb报表
    odoo10学习笔记十二:web controller
    odoo10学习笔记十一:视图综述
    odoo10学习笔记十:Actions
    odoo10学习笔记九:Odoo10 API
    odoo10学习笔记七:国际化、报表
  • 原文地址:https://www.cnblogs.com/kaishirenshi/p/11103759.html
Copyright © 2011-2022 走看看