Nginx IP 透传

一、简介

Nginx的IP地址透传是一个在网络传输中保留和传递源IP地址和目标IP地址的功能。IP透传,即IP透明传输,是指在网络传输过程中,源IP地址和目标IP地址能够完整地保留和传递,中间的网络设备(如代理服务器、负载均衡器等)不会修改这些IP地址。

二、应用场景

  • 记录真实客户端IP地址的日志:在Nginx作为反向代理服务器时,默认情况下,后端服务器只能看到Nginx的IP地址,而无法看到客户端的真实IP地址。通过IP透传,后端服务器可以记录客户端的真实IP地址,便于日志分析和问题排查。

  • 访问控制:在一些应用场景中,需要根据客户端的IP地址进行访问控制。通过IP透传,可以确保后端服务器能够获取到客户端的真实IP地址,从而进行准确的访问控制。

三、配置参数

bash 复制代码
server {
  listen 80;
  server_name example.com;
  location / {
  # 用于记录客户端的真实IP地址。
  proxy_set_header X-Real-IP $remote_addr;
  # 用于记录经过的代理服务器的IP地址列表,最左边的为客户端IP,右边为经过的代理服务器IP
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  # 用于记录原始请求的协议(http或https)
  proxy_set_header X-Forwarded-Proto $scheme;
  }
}

四、简单实践

1、角色分配

角色 IP 系统
Client 10.0.0.15 Rocky9
Proxy Server 10.0.0.114 Ubuntu24
Real Server 10.0.0.118 openEuler

2、未透传实践

默认情况下,后端真实服务器无法获取真实客户端IP

查看 Proxy Server 配置 /etc/nginx/conf.d/vhost.conf

修改后端 Real Server 配置 /etc/nginx/default.d/simple.conf

bash 复制代码
location / {
  return 200 "客户端:\${remote_addr}---真实ip: \${http_x_real_ip}----地址列
表:\${http_x_forwarded_for}\n";
}

重启 nginx 并查看效果,后端服务器只能获取代理服务器IP

3、透传配置

修改代理服务器配置 /etc/nginx/conf.d/vhost.conf ,透传真实客户端IP,location块增加 proxy_set_header X-Real-IP \remote_addr; 及 proxy_set_header X-Forwarded-For \\proxy_add_x_forwarded_for;

bash 复制代码
server {
  listen 80 default_server;
  server_name ubuntu.test.com;
  root /data/server/nginx/web1;

  location /static {
  rewrite ^/static(.*)\$ /index.html break; # 重写url
  proxy_pass http://10.0.0.118;
  proxy_set_header Host "openEuler.test.com";

  # 将客户端IP追加请求报文中X-Real-IP,记录客户端的真实IP地址。
  proxy_set_header X-Real-IP \$remote_addr;
  # 将客户端IP追加请求报文中X-Forwarded-For首部字段
  proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for;
  }
}

4、测试结果

重启代理服务器nginx,客户端测试结果

后端服务器能获取客户端IP地址

相关推荐
虎头金猫2 天前
4K 视频总卡在公网带宽?用 N1 + OpenList 把网盘播放链路重新理顺
运维·服务器·网络·python·容器·beautifulsoup·pandas
还是大剑师兰特2 天前
解决nginx错误:http://localhost:7000正常,http://localhost:7000/map 报错404
nginx·大剑师
wuyk5553 天前
《WiFi 嵌入式物联网开发全套实战》| 第 16 章 ESP32 AP+STA 双模共存原理与工程坑点
网络·stm32·物联网
xing-xing3 天前
Docker容器中Nginx站点根目录网页配置访问
nginx·docker
QYRdata3 天前
年均增速24.2%!机器人数据湖未来六年增长动能强劲
网络·机器人·服务发现
CHENKONG_CK3 天前
破解制鞋打磨痛点:RFID赋能去毛刺工序自动化升级
网络·单片机·嵌入式硬件·网络协议·tcp/ip
chshang19923 天前
工业路由器是什么?浅谈5G工业网络中的IR602
网络·物联网·5g·智能路由器
萧瑟余晖3 天前
Netty 核心组件与 Reactor 模型详解
网络·架构
ITxiaobing20233 天前
IP 定位服务选型指南:从准确率到工程落地的技术考察
linux·服务器·网络
wuyk5553 天前
【Socket 进阶之路】第 9 章 Linux 网络服务量产稳定性优化|心跳保活、TIME_WAIT、SO_LINGER、内存池、断线重连、完整异常防护框架
linux·服务器·开发语言·网络·物联网