将 varnish ip 地址动态设置为 nginx set_real_ip_from

Dynamically set varnish ip address to nginx set_real_ip_from

我已经设置了 docker 个容器(Nginx、Varnish、PHP-FPM)并且它们都相互通信。但是我想设置 php-fpm 状态页面,并希望本地主机(127.0.0.1)和不同 docker 容器上的监控服务可以访问。

我在 nginx 上的初始设置有效

location = /status {
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include fastcgi_params;
        fastcgi_pass fastcgi_backend;
}

然而,当我添加 allow/deny(见下文)时,我无法通过本地主机访问该页面。

allow 127.0.0.1;
deny all;

四处挖掘,看起来 nginx 正在接收 varnish ip。所以我添加了以下内容,它起作用了。

set_real_ip_from    XXX.XXX.XXX.XXX;
real_ip_header      X-Forwarded-For;

如何将 varnish IP 地址动态添加到 nginx conf 文件中? 我试过了 set_real_ip_from <docker container name>

将 nginx 版本更新到 > 1.13.1 并使用主机名调用清漆服务器。在这种情况下,清漆服务器位于 site-varnish.

的主机名上

能够使用 set_real_ip_from site-varnish;