该平台是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>