多个nginx转发获取真实ip配置
时间: 2024-12-25 18:32:37 浏览: 3
在Nginx中,如果你需要通过多个代理服务器将请求转发并获取客户端的真实IP地址,你可以使用Nginx的proxy_set_header指令。真实IP通常隐藏在HTTP头部的X-Forwarded-For字段中。以下是一个基本的配置示例:
```nginx
server {
listen 80;
server_name example.com;
location / {
# 配置代理到后端服务器,同时保留原始IP
proxy_pass http://backend_server;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr; # 获取真实IP
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # 将所有X-Forwarded-For值附加到此头
}
}
# 如果有多个代理服务器,可以配置多个location块,并分别设置不同的代理目标
location /other_path {
proxy_pass http://another_backend;
proxy_set_header ...; # 设置类似的真实IP获取
}
```
在这个例子中,`$remote_addr`表示直接连接到服务器的客户端IP,而`$proxy_add_x_forwarded_for`则包含了所有经过的代理服务器的IP列表。记得替换`http://backend_server`和`http://another_backend`为你实际的后端服务器地址。
阅读全文