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; # 可选,用于调试目的  
        }  
    }  
    ...  
}
相关推荐
南方以南_7 小时前
CKA07--Argo CD
运维·kubernetes·k8s
洋芋土豆8 小时前
linux用户及权限管理
linux·运维·服务器
塔能物联运维9 小时前
物联网运维中的自适应DNS解析优化与动态负载均衡技术
运维·物联网·负载均衡
wheeldown9 小时前
【Linux】Linux内存管理与线程控制核心解析
linux·运维·服务器
久爱物联网9 小时前
UDP/TCP接收/转发/广播服务端
tcp/ip·udp·tcp服务端透传转发·udp服务端透传转发·tcp\udp集成广播服务端·udp并发·tcp并发
努力努力再努力wz10 小时前
【Linux进阶系列】:线程(下)
linux·运维·服务器·c语言·数据结构·c++·算法
KV_T10 小时前
centos运维常用命令
linux·运维·centos
todoitbo10 小时前
使用n8n搭建服务器监控系统:从Webhook到Telegram告警的完整实现
运维·服务器·数据库·ai·向量数据库·流处理·n8n
dessler10 小时前
MYSQL-主键(Primary Key)
linux·运维·mysql
安丘贾队长10 小时前
json啊啊啊啊啊啊啊啊啊
运维