NGINX和代理协议转发



我正在尝试创建一个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;
    }
}

最新更新