
Me gustaría que Varnish ignorara por completo ciertas URL de mis sitios web.
Es decir, www.site1.com/fileuploader y www.site2.com/fileuploader
Tengo 4 sitios web en la misma VCL y todos esos sitios web utilizan la misma estructura de URL, por lo que lo único que cambia es el dominio en sí; las URL que quiero que Varnish ignore son las mismas.
He intentado:
sub vcl_recv {
if (req.url ~ "^/fileuploader/\?"
) {
return(pipe);
}
}
Pero no funciona. Al intentar descargar un PDF a través de él, aparece el error Varnish 503 no disponible (el mismo error que tengo si no cambié la configuración). Si paso por nginx directamente usando su puerto, se descarga bien.
Aquí está el registro de barniz de este 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
Respuesta1
Si desea que Varnish no lo toque, entonces la mejor opción es return(pipe);
, que básicamente le dice a Varnish que actúe como un proxy TCP tonto mientras dure la conexión.
Pero el hecho de que haya recibido una 503
respuesta parece implicar que algo más está mal: ¿puede proporcionar el resultado de varnishlog
cuando se realiza una solicitud para ese recurso, si el modo canalización no funciona?