0

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

我使用的配置有问题吗?这完全可以做到吗?

4

1 回答 1

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;
    }
}
于 2018-04-04T10:16:48.240 回答