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

时间:2015-02-05 23:15:39

标签: nginx varnish mod-pagespeed

我们使用Google PageSpeed模块和Vginish背后的Nginx。

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

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

问题是我们有多个Varnish坐在多个pagespeed受体前面,清漆指示循环中的流量。

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

1 个答案:

答案 0 :(得分:0)

将清除请求发送回正确的清漆服务器。 在Varnish方面,我放入了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地址。