我正在设置一个使用 NGINX 作为负载均衡器的服务器集群。所有请求都通过 HTTPS,因此负载均衡器使用流(SSL 直通)将请求直接传递到集群。
我需要终端服务器查看客户端 IP 而不是负载均衡器 IP。
我的 nginx.conf
## Misc other config stuff
stream {
map $ssl_preread_server_name $backend_cluster_map {
site.a cluster_1;
site.b cluster_2;
default cluster_1;
}
upstream cluster_1 {
server 10.0.0.202:443;
server 10.0.0.203:443;
}
upstream cluster_2 {
server 10.0.0.204:443;
server 10.0.0.205:443;
}
server {
listen 443;
proxy_pass $backend_cluster_map;
ssl_preread on;
}
}
Run Code Online (Sandbox Code Playgroud)
我尝试更改服务器块以包含proxy_set_header转发 IP,但没有通过 nginx 测试,说明proxy_set_header directive is not allowed here.
server {
listen 443;
proxy_protocol on;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr; …Run Code Online (Sandbox Code Playgroud)