我正在尝试创建一个nginx配置,其中nginx在即将到来的连接上接收代理协议标头,并将其传递给传出连接。从本质上讲,将真实的IP地址传播到最终目标。我正在使用以下配置:
stream {
upstream some_backend {
server some_host:8090;
}
server {
listen 8090 proxy_protocol;
proxy_pass some_backend;
proxy_protocol on;
}
}
但是,我在" some_backend"上收到的代理协议标头包含nginx'IP地址,而不是源IP地址。
我正在使用的配置有问题吗?可以做到这一点吗?
糟糕,我再做一次...看来缺少的部分是添加set_real_ip_from指令,您用来访问nginx
的IP范围http://nginx.org/en/docs/stream/ngx_stream_realip_module.html
stream {
upstream some_backend {
server some_host:8090;
}
server {
listen 8090 proxy_protocol;
proxy_pass some_backend;
proxy_protocol on;
set_real_ip_from 172.17.0.0/24;
}
}