nginx:server_name 和 server_addr 错误,其前面有反向代理

nginx:server_name 和 server_addr 错误,其前面有反向代理

我在 nginx 前面有 stunnel 来处理 ssl。 (我知道 nginx 可以处理 ssl,但我正在迁移 nginx,这是必要的步骤。)

Stunnel 和 nginx 在同一个盒子上运行。

如果 nginx 前面没有 stunnel,nginx 会分别将 server_addr 和 server_name 作为盒子的公共 IP 和我正在获取的 url 的域。

现在有了 stunnel,nginx 认为 server_addr 和 server_name 分别是 127.0.0.1 和 localhost。这把事情搞砸了。

我怎样才能让 nginx 获取(或 stunnel 发送)正确的 server_addr 和 server_name?

答案1

但是,由于 Stunnel 是一个代理,不了解 HTTP,因此客户端的 IP 地址丢失了,这有点烦人。

尝试 ngx_http_realip_module 和X-Forwarded-For支持 Stunnel

set_real_ip_from   192.168.2.1;
real_ip_header     X-Forwarded-For;

相关内容