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; # 可选,用于调试目的  
        }  
    }  
    ...  
}
相关推荐
贵州诚鑫致达科技有限公司5 小时前
Linux的yum源怎么重启?源不是服务
linux·运维·服务器
遇印记6 小时前
传输层,网络层
运维·服务器·网络·windows·学习
品牌常新6 小时前
景区巡逻机器人怎么选?派宝S5全地形守护解析
运维·人工智能·机器人
Elastic 中国社区官方博客6 小时前
一条 ES|QL 查询,涵盖365天的审计日志:在热数据和可搜索快照上执行相同的搜索
大数据·运维·服务器·elasticsearch·搜索引擎·全文检索
澜山奕秋8 小时前
RHCSA
linux·运维·服务器
80s7778 小时前
动态IP是什么,动态IP的应用场景有哪些?
网络·网络协议·tcp/ip
cnnews9 小时前
Chromebox3安装Ubuntu后内存化与最小化 eMMC 写入优化
linux·运维·ubuntu
ITxiaobing20239 小时前
IP 库与 AppsFlyer 国家/地区数据不一致,如何系统地对账?
数据库·网络协议·tcp/ip
AliCloudROS9 小时前
OOS ChatOps Agent 定时任务:每天 9 点,让Agent 在钉钉群里交运维报告
运维·自动化运维