当前位置: 首页 > news >正文

Nginx(二十) 获取真实客户端IP

        客户端在访问互联网应用服务器时,与真实的应用服务器之间会因为有多层反向代理,而导致真实应用服务器获取的仅是最近一层的反向代理服务器 IP。为使 Nginx 后端的上游服务器可以获得真实客户端 IP,Nginx 提供了 ngx_http_realip_module 模块用以实现真实客户端 IP 的获取及传递的功能。
        通过该模块提供的配置指令,用户可以手动设置上层反向代理服务器的 IP 作为授信 IP,Nginx 服务器根据配置指令的配置排除授信 IP,而甄别出真实的客户端 IP 进行日志记录,并传递给上游服务器。模块配置指令如下表所示。

指令名称

指令值格式

默认值

指令说明

set_real_ip_from

address 或 CIDR 或 unix

--

设置授信 IP,IP 网段或 UNIX 套接字

real_ip_header

field 或 X-Real-IP 或 X-For-warded-For 或 proxy_protocol

X-Real-IP

通过指定的 HTTP 头字段获取真实客户端 IP

real_ip_recursive

on 或 off

off

当客户端经多层反向代理到达当前服务器时,指定的 HTTP 头字段中会有多个 IP 地址。默认会以最后一个 IP 为真实客户端 IP,当指令值为 on 时,会以最后一个非信 IP 为真实客户端 IP

该模块指令使用的指令域范围为http、server、location。配置样例如下:

server {listen       8088;access_log  logs/proxy.access.log  main;set_real_ip_from 192.168.2.159;   # 设置192.168.2.159为授信IPreal_ip_header X-Forwarded-For;   # 通过HTTP头字段X-Forwarded-For获取真实客户端IPreal_ip_recursive on;             # 以最后一个非授信IP为真实客户端IPtcp_nodelay off;                  # 因启用缓冲区功能,所以关闭立刻发送功能location ~ ^/ {proxy_force_ranges on;        # 强制启用字节范围请求支持proxy_pass   http://192.168.2.145:8082;break;}
}

http://www.lryc.cn/news/275441.html

相关文章:

  • 【攻防世界】Reverse—— IgniteMe writeup
  • m1芯片电脑上的paragon15如何安装激活 m1芯片电脑上ntfs for mac如何安装
  • 【DevOps-01]】DevOps介绍
  • 基于PHP的花店管理系统
  • 《PySpark大数据分析实战》-24.数据可视化图表介绍
  • kafka 偏移量的类型与提交方式
  • TCP服务器的编写(下)
  • Linux系统安全及应用
  • 初识Web服务器
  • IOS - 手机安装包 ipa 常见几种方式
  • 60、resnet50 权值和参数加载
  • wordpress在界面将站点地址直接修改为https导致上不去问题的解决办法
  • 数字IC后端实现之快速获取innovus中drv violation的所有net list
  • 【开源】基于JAVA语言的智能教学资源库系统
  • 数据库定义和操作语句的重要语法
  • 计算机组成原理 CPU的功能和基本结构和指令执行过程
  • 批量归一化:彻底改变深度学习架构
  • Spring05
  • MvvmToolkit的使用
  • 分布式【一致性Hash算法简介】
  • PHP命令行脚本接收传入参数的三种方式
  • 【STM32】STM32学习笔记-ADC单通道 ADC多通道(22)
  • 1329:【例8.2】细胞 广度优先搜索
  • 9款免费网络钓鱼模拟器详解
  • linux cpu、memory 、io、网络、文件系统多种类型负荷模拟调测方法工具
  • 1018:奇数偶数和1028:I love 闰年!和1029:三角形判定
  • 数据密集型应用系统设计--第2章 数据模型与查询语言
  • yolo 分割label格式标注信息图片显示可视化查看
  • 霍兰德职业兴趣测试 60题(免费版)
  • MySQL之视图内连接、外连接、子查询