me gustaría añadir un poco más de detalle tanto Cristian Vidmar y mensajes de msurovcak
Los "(req.http.host == "example1.com")" Patrón:
Hemos utilizado el patrón descrito para alojar decenas a cientos de sitios por servidor.
Puede continuar con reglas personalizadas específicas del sitio a través de toda su configuración (vcl_fetch/vcl_backend_response, vcl_hash etc.) utilizando el
if (req.http.host == "example1.com") {
ejemplo, siempre que sea necesario.
Combine esto con un motor de plantillas para permitir que las configuraciones específicas del cliente se administren a través de archivos individuales que contienen su propia lógica (todo envuelto con su sitio específico si los bloques para aislar el código).
A continuación, incluyen cada bloque sitio individual en el default.vcl usando:
include "/etc/varnish/www.example1.com.vcl";
Una mejora opcional a backends totalmente divididas:
Si aloja totalmente diferentes sitios web a continuación, dividida backends (y caché dividida) es una buena forma de hacerlo.
Si los sitios son similares (mismas bases de código/js/css/images) puede ser interesante ejecutar un dominio de recursos ej. resources.example.com que usan todos los sitios.
Puede tener un único caché (y una tasa de aciertos muy alta) en cada uno de los elementos comunes de varios sitios y aún así mantener las diferencias en los sitios www individuales.
Otra alternativa al uso de división de vuelta termina:
Otra opción es la de dividir los casos de barniz a través de contenedores. Cada uno entonces se convierte en su propio mundo aislado que es administrado (y vive y muere) individualmente. Esta puede ser una buena opción de seguridad y la sobrecarga de múltiples procesos es mínima en la infraestructura moderna.
Algunas ventajas de esto es que puede soportar diferentes versiones de Varnish y diferentes parámetros de inicio de Varnish por instancia.
Esto puede ser ideal para el registro individual, aprovechando los diferentes modos de ESI por instancia y la configuración individual de memoria/ajuste.
Hacemos esto en www.section.io y también nos da la capacidad de ejecutar diferentes contenedores en diferentes ubicaciones geográficas o los mismos contenedores en diferentes ubicaciones para acercarnos lo más posible a las bases de usuarios geográficamente dispersas.
Será esto también coincide www.backend1.com y backend1. com? – Tom
si tiene 'return (lookup)', es posible que las publicaciones no funcionen ya que Varnish encubrirá cualquier solicitud de publicación para obtener solicitudes. Elimina este código y funcionará. – AddersUK
Esto es fantástico. Usó una combinación de la suya y la respuesta de msurovcak, pero esto fue muy útil. Nice one –