ngx_pagespeed Varnish背后,如何指定多个(或正确的)DownstreamCachePurgeLocationPrefix?

ngx_pagespeed behind Varnish, how specify multiple (or correct) DownstreamCachePurgeLocationPrefix?

我们在 Varnish 后面使用 Google PageSpeed 模块和 Nginx。

Pagespeed 仅在首次点击时提供部分优化的页面,我们使用此配置让 Pagespeed 向 Varnish 发送清除请求,以便 Varnish 在 Pagespeed 确实具有完全优化的版本后清除该页面:

pagespeed DownstreamCachePurgeLocationPrefix http://10.128.1.1:6081;
pagespeed DownstreamCachePurgeMethod PURGE;
pagespeed DownstreamCacheRewrittenPercentageThreshold 95;

问题是我们有多个 Varnish 位于多个 pagespeed 接收器前面,并且 varnish 以循环方式引导流量。

因此,例如,如果 app-05 获得了流量,则无法确定哪个 varnish 代理缓存了该页面。我可以使用哪个 nginx 变量来告诉 pagespeed 哪个清漆服务器缓存了第一个部分优化的页面?

将清除请求发送回正确的清漆服务器。 在清漆方面,我输入 vcl_recv:

set req.http.X-Forwarded-From = server.ip;

然后在 Nginx 上我输入:

pagespeed DownstreamCachePurgeLocationPrefix http://$http_x_forwarded_from:6081;

我认为这行得通,但似乎行不通。

我知道该变量在 Nginx 中填充了 Varnish ip(因为我通过 200 响应回应了它)但出于某种原因 pagespeed 似乎不想接受来自该变量的 ip 地址。