NGinx和代理协议转发

时间:2018-04-03 15:48:19

标签: nginx proxy-protocol

我正在尝试创建一个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地址。

我使用的配置有问题吗? 这可以完成吗?

1 个答案:

答案 0 :(得分:0)

哎呀,我又做了...... 似乎缺少的部分是添加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;
    }
}