• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Nginx基础学习之realip模块的使用方法

    前言

    nginx模块分为两种,官方和第三方,我们通过命令 nginx -V 查看 nginx安装信息,可以看到 下面有关 --with的nginx启动加载的模块信息。

    realip模块

    用途 :当本机 Nginx 处于反向代理后端时可以获取到用户的 真实IP地址 。

    使用 : realip 功能需要 Nginx 添加 ngx_http_realip_module 模块,默认情况下是不被编译,如果需要添加,请在编译时添加 --with-http_realip_module 选项开启它。

    realip 作用域

    set_real_ip_from 、 real_ip_header 和 real_ip_recursive 都可以用于 http 、 server 、 location 区域配置。

    realip 部分参数解释

    http 头中的 X-Forwarded-For、X-Real-IP、Remote Address 解释

    X-Forwarded-For 位于HTTP请求头,是HTTP的扩展 header ,用于表示HTTP请求端 真实IP 。

    格式如下:

    X-Forwarded-For: client, proxy1, proxy2

    Nginx 代理一般配置为:

    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

    解释:

    realip 功能举例说明

    下面是一个简单的架构图:

    假设一:

    1、如果 Nginx 没有使用 realip模块 ,第二台 Nginx中 X-Forwarded-For 请求是 1.1.1.1,但 remote_addr 地址是 2.2.2.2,这时应用服务可以通过 X-Forwarded-For 字段获取用户真实IP。不过这里有点风险,如果中间多几层反向代理服务,就无法获取唯一一个用户真实IP。

    2、如果 Nginx 使用 realip模块 ,并如下设置;Nginx 会取 X-Forwarded-For 最后一个IP也就是 2.2.2.2 作为真实IP。最后应用服务拿到的地址也是 2.2.2.2,但事实这不是用户IP。

    set_real_ip_from 2.2.2.2;
    set_real_ip_from 2.2.2.3; 
    real_ip_header X-Forwarded-For; 
    real_ip_recursive off;

    3、如果 Nginx 使用 realip模块 ,并如下设置;由于 2.2.2.2 是信任服务器IP,Nginx 会继续往前查找,发现 1.1.1.1 不是信任服务器IP,就认为是真实IP。但事实 1.1.1.1 也就是用户IP。最后应用服务也拿到唯一的用户真实IP。

    set_real_ip_from 2.2.2.2;
    set_real_ip_from 2.2.2.3; 
    real_ip_header X-Forwarded-For; 
    real_ip_recursive on;

    总结

    到此这篇关于Nginx基础学习之realip模块的使用方法就介绍到这了,更多相关Nginx realip模块使用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

    上一篇:Linux 下载安装VSCode 使用编程输出当前时间的方法
    下一篇:docker安装elasticsearch和kibana的方法步骤
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯

    时间:9:00-21:00 (节假日不休)

    地址:江苏信息产业基地11号楼四层

    《增值电信业务经营许可证》 苏B2-20120278

    Nginx基础学习之realip模块的使用方法 Nginx,基础,学,习之,realip,