2014-11-28 4 views
11

Мои конфиги основаны на Varnish 3.0, и я обновляю их. Но я столкнулся с проблемой.Как получить req.url в vcl_backend_response?

vcl_fetch был заменен на vcl_backend_response. Внутри vcl_fetch вы использовали, чтобы использовать req.url, но уже не внутри vcl_backend_response.

Так я остался с тремя if заявления, которые не будут работать:

sub vcl_backend_response { 
    set beresp.do_esi = true; 

    if (!(req.url ~ "wp-(login|admin)")) { 
      unset beresp.http.set-cookie; 
    } 

    if (req.http.host ~ "[0-9]\.example\.com" || req.http.host ~ "[0-9]\.example\.com") { 
      set beresp.ttl = 60s; 
    } 

    if (req.url ~ "\.(html|htm|css|js|txt|xml|svg)(\?[a-z0-9=]+)?$") { 
      set beresp.do_gzip = true; 
    } 
} 

Как преобразовать эти конфиги в лаковой версии 4.0?

Кстати, я новичок в Varnish VCL.

ответ

29

Вы должны использовать bereq.url сейчас в vcl_backend_response.