通过Nginx反向代理获取客户端的真实IP

时间:2018-08-21 20:57:49

标签: docker nginx proxy

该平台是Docker主机,使用jwilder/nginx-proxy映像作为前端反向代理。它会自动生成nginx配置,并在创建和删除具有特定元数据的其他容器时重新启动该容器。

然后将Webserver容器部署为特定的域名,例如www.domain.com。我需要在网络服务器的日志文件中查看实际客户的IP。目前,我正在获取nginx-proxy容器的IP。

根据使用指南,可以在/etc/nginx/vhost.d/目录中部署特定于站点的配置。我用相同的www.domain.com文件名创建了我的文件,它包含:

real_ip_header X-Forwarded-For;

set_real_ip_from 172.19.0.0/16;

我创建了一个新的虚拟容器,以强制nginx-proxy创建新的配置并重新加载。登录到nginx-proxy容器的控制台,/etc/nginx/conf.d/default文件的443 server{}块包含具有以上文件名的include语句。因此,它应该正在加载配置。我没有看到Web服务器日志文件中客户端IP的任何更改。 80 server{}块中不包含此包含-正确吗?

我还尝试编辑执行自动生成的nginx-proxy配置的nginx.tmpl文件。在容器中,它位于/app/。另一篇文章建议替换“ log_format”命令以使用$http_x_forwarded_for而不是$remote_addr。这没有效果。

由于nginx-proxy具有自动生成特性,因此我不确定如何手动编辑正在运行的配置,也不知道如何调试当前设置的值或正在应用配置脚本的逻辑。 / p>

0 个答案:

没有答案