Как отключить кеш лака для поддоменов с подстановочными знаками

Я пытаюсь отключить кеширование в лаке для всех поддоменов. Наше приложение позволяет пользователям создавать и управлять своими собственными веб-сайтами на поддомене нашего URL-адреса, но лак продолжает кэшировать свою страницу, когда они пытаются ее редактировать.

Я знаю основной формат:

if (req.url ~ "[code here]") {
    # Don't cache, pass to backend
    return (pass);
}

но ничто из того, что я пробовал, не работает для всех поддоменов.

Может быть, это простое регулярное выражение?


person user2152590    schedule 12.06.2014    source источник


Ответы (2)


Вы можете использовать req.http.host для этой цели. И да, это может быть регулярное выражение.

sub vcl_recv
{
   /* your earlier definitions */
   if( req.http.host ~ 'my.subdomain.example.com' )
   {
        // set the backend first
        set req.backend = localhost;

        return( pass );

    }

    /* your definitions  */
 }

В некоторых случаях может потребоваться return( pipe ):
https://www.varnish-cache.org/docs/2.1/faq/configuration.html

person Debreczeni András    schedule 12.06.2014
comment
Такие как? вы можете использовать req.http.host ~ '.example.com', который поймает все поддомены. или вам нужно, чтобы мы сделали для вас регулярное выражение, которое будет ловить поддомены? - person Debreczeni András; 13.06.2014

Я думаю, вам понадобится это для любого поддомена (обратите внимание, что это может быть проблемой, если вы используете www, так как он может считаться поддоменом) и будет соответствовать чему-либо до . в example.com

sub vcl_recv {
      if(req.http.host ~ ".*\.example.com") {      
        return( pass );
    }

 }
person Mike Andreasen    schedule 28.02.2016