Подтвердить что ты не робот

Как получить req.url в vcl_backend_response?

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

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;
     }
}

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

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

4b9b3361

Ответ 1

Теперь вы должны использовать bereq.url в vcl_backend_response.