nginx:server_name和server_addr在它前面有反向代理错误

为了处理ssl,我在nginx前面进行了通讯。 (我知道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?

然而,由于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;