我想清漆完全忽略了我的网站上的某些url。
即,www.site1.com/fileuploader和www.site2.com/fileuploader
我在同一个VCL上有4个网站,所有这些网站都使用相同的URL结构,所以唯一改变的就是域本身,我想让Varnish忽略的URL是一样的。
我试过了:
sub vcl_recv { if (req.url ~ "^/fileuploader/\?" ) { return(pipe); } }
但它不起作用。 当试图通过它下载PDF时,我得到了一个Varnish 503 Unavailable错误(如果我没有更改configuration,我也有同样的错误)。 如果我直接使用它的端口通过nginx,它下载罚款。
以下是这次事件的清单:
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
如果你想通过它绝对没有受到光油,最好的select是return(pipe); ,它基本上告诉Varnish在连接期间充当一个愚蠢的TCP代理。
但事实上,你得到了503回应似乎意味着其他的东西是错误的 – 你可以提供从varnishlog的输出,当一个请求资源的时候,如果pipe道模式不能做的伎俩?