2015-02-05 3 views
0

Мы используем модуль Google PageSpeed ​​с Nginx за лаком.ngx_pagespeed за лаком, как указать несколько (или правильно) DownstreamCachePurgeLocationPrefix?

PageSpeed ​​только обеспечивает частично оптимизированную страницу на первый хит, и мы используем этот конфиг, чтобы PageSpeed ​​посылать запросы продувочных лакировать, так что лак очистит эту страницу, как только PageSpeed ​​действительно имеет полностью оптимизированную версию:

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

Проблема в том, что у нас есть несколько лаков, сидящих перед несколькими рецепторами, и лак направляет трафик в круглом робин.

Так что, если приложение-05, например, получает трафик, не сообщается, какой лаковый прокси кэшировал эту страницу. Какую переменную nginx можно использовать, чтобы указать скорость страниц, какой сервер лака кэшировал первую частично оптимизированную страницу?

ответ

0

Чтобы отправить запрос очистки обратно на правильный сервер лаков. На лаковой стороне я поставил в vcl_recv:

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

А потом на Nginx я поставил:

pagespeed DownstreamCachePurgeLocationPrefix http://$http_x_forwarded_from:6081; 

Я думал, что это будет работать, но это, кажется, не будет.

Я знаю, что переменная заполняется Varnish ip в Nginx (потому что я повторил ее через ответ 200), но по какой-либо причине скорость страниц, похоже, не хочет принимать ip-адрес из этой переменной.

+0

Я попытался поместить это на сервер {} в nginx conf 'pagespeed FileCachePath/var/ngx_pagespeed_cache; pagespeed ProcessScriptVariables on ;, но он не позволял pagepeed обрабатывать nginx varaibles. по-видимому, этот параметр только делает переменные nginx доступными для директивы loadfromfile. :(Возможно, это невозможно. – JaseC

+0

Обновление: я связался с разработчиками, и они сказали, что они добавят эту функцию. https://github.com/pagespeed/ngx_pagespeed/issues/903 Так что следите за этим и обновляйте его при выпуске. До тех пор единственным решением, о котором мы можем думать, является не использование кругового движения. – JaseC