nginx多级代理配置获取客户端真实ip

流量路径

客户端 nginx1 nginx2 nginx3 后端服务 前端页面

nginx1配置

shell 复制代码
server {  
    listen 80;  
    server_name your_nginx_server.com;  
  
    location / {  
        proxy_pass http://nginx2_server_address;  
        proxy_set_header Host $host;  
        proxy_set_header X-Real-IP $remote_addr;  
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;  
        proxy_set_header X-Forwarded-Proto $scheme;  
    }  
}
# proxy_pass指令指定了请求应该被转发到的nginx2的地址。
# proxy_set_header指令用于设置转发到nginx2的HTTP头部。这里我们设置了X-Real-IP和X-Forwarded-For,以便nginx2可以获取到原始客户端的IP地址。

# proxy_set_header Host $host;
# 将原始请求的 Host 头字段传递给代理服务器。

# proxy_set_header X-Real-IP $remote_addr;
# 向代理服务器传递客户端的真实 IP 地址。

# proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# 确保代理服务器知道请求经过的所有代理的 IP 地址列表

# proxy_set_header X-Forwarded-Proto $scheme;
# 向代理服务器传递原始请求的协议类型(http 或 https)。

nginx2配置

shell 复制代码
http {  
    ...  
    real_ip_header X-Forwarded-For;  
    set_real_ip_from nginx1的IP地址;  
    ...  
    server {  
        ...  
        location / {  
        	proxy_pass http://nginx3_server_address; 
        	proxy_set_header Host $host;  
        	proxy_set_header X-Real-IP $remote_addr;  
        	proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;  
        	proxy_set_header X-Forwarded-Proto $scheme; 
            # 你的其他配置指令  

        }  
    }  
    ...  
}

nginx3配置

shell 复制代码
http {  
    ...  
    real_ip_header X-Forwarded-For;  
    set_real_ip_from nginx2的IP地址;  
    ...  
    server {  
        ...  
        location / {  
        	# 具体分拆前端后端的location
            # 你的其他配置指令  
            add_header X-Real-IP $remote_addr; # 可选,用于调试目的  
        }  
    }  
    ...  
}
相关推荐
Waay1 小时前
Linux Shell 知识点考评(一):grep 文本搜索(附答案)
linux·运维·服务器
碧海银沙音频科技研究院2 小时前
基于VMware虚拟机ubuntu开发博通BK7258方法
linux·运维·ubuntu
Oflycomm4 小时前
工业以太网四大主流协议(EtherCAT/PROFINET/EtherNet/IP/Modbus)技术参数深度对比
网络·网络协议·tcp/ip·欧飞信·plc模组
wangl_926 小时前
Modbus RTU 与 Modbus TCP 深入指南-现代替代协议
网络·网络协议·tcp/ip·tcp·modbus·rtu
谁似人间西林客6 小时前
工厂大脑如何让汽车制造告别“救火式”运维?
运维·汽车·制造
飞飞传输7 小时前
数字化科研提速关键 构建安全可控一体化跨网数据传输体系
大数据·运维·安全
wanhengidc7 小时前
服务器中带宽的重要性
运维·服务器·网络·安全·web安全
云游牧者8 小时前
K8S故障排查三板斧-CSDN博客
运维·docker·云原生·kubernetes·k8s·容器化·故障排查
程序员老邢8 小时前
【技术底稿 32】Nginx 经典大坑复盘:本机公网域名自环代理,导致接口返回首页 / 404 实战排障
java·运维·nginx·前后端分离·技术底稿·后端部署
忧云9 小时前
开源 SSH 客户端 Netcatty:免费替代 Termius,带 AI 的现代化运维工具
运维·开源·ssh