Barniz bypass un archivo grande
-
26-12-2019 - |
Pregunta
Tengo barniz instalado con la configuración predeterminada en mi servidor web Apache.Apache Listing al puerto 8080 y el barniz enumerando a 80.
Tengo pocos archivos descargables en el sitio web con los tamaños 100MB, 500 MB y 1GB
El 1GB no funciona, cuando hace clic en él, dirá que no disponible Página o conexión cerrada por el servidor.Los otros dos están funcionando bien, pero no estoy seguro de si esta es la forma correcta de descargarlos.
¿Cómo hago que el barniz omite estos archivos y obtenga directamente del servidor web?
gracias.
Solución
Esto se podría hacer con la verificación de Content-Length
en responder backend, y si es mayor que algún tamaño, luego etiquetelo con alguna marca y geneacodicetagchode Solicitud de transacción
Ejemplo, archivos con longitud de contenido>= 10,000,00 deben estar canalizados:
sub vcl_fetch {
..
if ( beresp.http.Content-Length ~ "[0-9]{8,}" ) {
set req.http.x-pipe-mark = "1";
return(restart);
}
..
}
Luego regresamos a la solicitud de verificación de la solicitud y el análisis.
Aquí podemos verificar nuestra marca y realizar restart
sub vcl_recv {
..
if (req.http.x-pipe-mark && req.restarts > 0) {
return(pipe);
}
..
}
Otros consejos
In varnish 4, vcl_fetch should be replaced with vcl_backend_response, see https://www.varnish-cache.org/docs/trunk/whats-new/upgrade-4.0.html