Ignore certas URLs no Cache Varnish

1

Eu gostaria que o Varnish ignorasse completamente determinadas URLs nos meus sites.

Ou seja, www.site1.com/fileuploader e www.site2.com/fileuploader

Eu tenho 4 sites no mesmo VCL, e todos esses sites estão usando a mesma estrutura de URL, então a única coisa que muda é o próprio domínio, os URLs que eu quero que o Varnish ignore são os mesmos.

Eu tentei:

sub vcl_recv {
    if (req.url ~ "^/fileuploader/\?"
        )  {
        return(pipe);
    }
}

Mas isso não funciona. Ao tentar fazer o download de um PDF, sou apresentado a um erro Varnish 503 Indisponível (o mesmo erro que eu teria se não tivesse alterado a configuração). Se eu passar pelo nginx diretamente usando sua porta, ele baixará bem.

Este é o vernizlog deste incidente:

   16 ObjHeader    - Server: nginx/1.2.7
   16 ObjHeader    - Date: Wed, 17 Apr 2013 11:03:40 GMT
   16 ObjHeader    - Content-Type: application/pdf
   16 ObjHeader    - Content-Length: 1078550
   16 ObjHeader    - X-Powered-By: PHP/5.3.23-1~dotdeb.0
   16 ObjHeader    - Expires: Thu, 19 Nov 1981 08:52:00 GMT
   16 ObjHeader    - Set-Cookie: frontend=74go8sgckma5qrobnqc36pcjd4; expires=Wed, 17-Apr-2013 12:03:40 GMT; path=/; domain=www.site1.com; httponly
   16 ObjHeader    - Pragma: public
   16 ObjHeader    - Cache-Control: must-revalidate, post-check=0, pre-check=0
   16 ObjHeader    - Content-Disposition: attachment; filename=File-1338990998.pdf
   16 ObjHeader    - Content-Encoding: gzip
   16 ObjHeader    - Vary: Accept-Encoding
   30 FetchError   - Resource temporarily unavailable
   16 FetchError   - straight insufficient bytes
    
por Pedro Peixoto 16.04.2013 / 15:53

1 resposta

0

Se você quiser passar isso completamente sem Varnish, então a melhor opção é return(pipe); , que basicamente diz ao Varnish para atuar como um proxy TCP idiota durante a duração da conexão.

Mas o fato de você ter recebido uma resposta 503 parece implicar que alguma outra coisa está errada - você pode fornecer a saída de varnishlog quando um pedido para esse recurso for feito, se o modo de canal não funcionar ?

    
por 17.04.2013 / 06:55