Cómo alojar sitios web de Drupal 8 con caché de barniz en planes VPS

Introducción: caché de barniz para los sitios Drupal 8 más rápidos

Esta Tutorial mostrará cómo instalar Caché de barniz en un VPS plan de alojamiento para ejecutar un Drupal 8 sitio web de alto rendimiento, incluida la configuración de los módulos necesarios.


Hay múltiples versiones de Caché de barniz disponible donde esta guía utilizará la plataforma 4.x como la instalación recomendada en LÁMPARA servidores con cualquier Linux distribución.

Hay competidores Drupal 8 módulos de gestión de caché disponibles con Purga, purga de barniz, & Purga de Acquia usado para Etiqueta de caché sistemas en sitios web de producción.

Paso uno: Instale Varnish Cache en el servidor web

Los requisitos previos para esto Tutorial son un trabajo Drupal 8 sitio web ya en producción que se ejecuta en un LÁMPARA servidor en VPS o dedicado con acceso a la línea de comandos a través de SSH.

Utilizar el Sudo o Apt-Get herramientas para instalar Caché de barniz a través de la línea de comando dependiendo del Linux versión que se ejecuta en el servidor web.

por Ubuntu Linux servidores web:

sudo apt-get install -y barniz

por Debian Linux servidores web:

apt-get install barniz

A continuación, navegue hasta Barniz archivo de configuración ubicado en: / etc / default / barniz

Abra el archivo en un editor de texto y agregue las siguientes líneas al texto:

DAEMON _OPTS ="-a: 80
-T localhost: 6082
-f /etc/varnish/default.vcl
-s malloc, 512m"
-S / etc / barniz / secreto

Se requiere crear un nuevo servicio de barniz presentar en: /etc/systemd/system/varnish.service con el siguiente texto:

[Unidad]
Descripción = Acelerador HTTP de barniz
Documentación = https: //www.varnish-cache.org/docs/4.1/ man: varnishd

[Servicio]
Tipo = simple
LímiteNOFILE = 131072
LimitMEMLOCK = 82000
ExecStart = / usr / sbin / varnishd -j unix, user = vcache -F -a: 80 -T localhost: 6082 -f /etc/varnish/default.vcl -S / etc / varnish / secret -s malloc, 512m
ProtectSystem = lleno
ProtectHome = verdadero
PrivateTmp = true
PrivateDevices = true

[Instalar en pc]
WantedBy = multi-user.target

Crea el archivo & cargar / guardar en el servidor web. Luego vuelva a cargar el Barniz configuración:

systemctl daemon-reload

Luego, navegue a: /etc/varnish/default.vcl y hacer una copia de seguridad del default.vcl archivo. Guarde la copia de seguridad y cree un nuevo archivo con el siguiente código:

backend predeterminado {

.host = "ejemplo.com";

.puerto = "8080";

}

# Lista de control de acceso para solicitudes PURGE.
# Aquí debe poner la dirección IP de su servidor web
purga acl {
"127.0.0.1";
}

# Responder a las solicitudes entrantes.
sub vcl_recv {
# Agregue un encabezado X-Fordered-For con la dirección IP del cliente.
if (req.restarts == 0) {
if (req.http.X-Forwards-For) {
establecer req.http.X-Fordered-For = req.http.X-Fordered-For + ", " + cliente.ip;
}
más {
establecer req.http.X-Forwards-For = client.ip;
}
}

# Solo permita solicitudes PURGE de direcciones IP en la ACL ‘purge’.
if (req.method == "PURGA") {
if (! client.ip ~ purge) {
return (sintetizador (405, "No permitido."));
}
retorno (hash);
}

# Solo permite solicitudes BAN de direcciones IP en la ACL de ‘purga’.
if (req.method == "PROHIBICIÓN") {
# La misma comprobación de ACL que la anterior:
if (! client.ip ~ purge) {
return (sintetizador (403, "No permitido."));
}

# Lógica para la prohibición, utilizando el encabezado Cache-Tags. Para más información
# ver https://github.com/geerlingguy/drupal-vm/issues/397.
if (req.http.Cache-Tags) {
prohibición("obj.http.Cache-Tags ~ " + req.http.Cache-Tags);
}
más {
return (sintetizador (403, "Falta el encabezado de etiquetas de caché."));
}

# Lanza una página sintética para que la solicitud no vaya al backend.
return (sintetizador (200, "Prohibición agregada."));
}

# Solo almacena en caché las solicitudes GET y HEAD (pasa por las solicitudes POST).
if (req.method! = "OBTENER" && req.method! = "CABEZA") {
volver (pasar);
}

# Pase por cualquier ruta administrativa o relacionada con AJAX.
if (req.url ~ "^ / status.php $" ||
req.url ~ "^ / update.php $" ||
req.url ~ "^ / admin $" ||
req.url ~ "^ / admin /.*$" ||
req.url ~ "^ / flag /.*$" ||
req.url ~ "^. * / ajax /.*$" ||
req.url ~ "^. * / ahah /.*$") {
volver (pasar);
}

# Eliminar cookies para contenido estático para que Varnish almacene en caché estos archivos.
if (req.url ~ "(? i). (pdf | asc | dat | txt | doc | xls | ppt | tgz | csv | png | gif | jpeg | jpg | ico | swf | css | js) (?. *)? $") {
no establecido req.http.Cookie;
}

# Elimine todas las cookies que Drupal no necesita saber. Explícitamente
# enumere los que Drupal necesita, SESS y NO_CACHE. Si después
# ejecutando este código, encontramos que cualquiera de estas dos cookies permanece, nosotros
# pasará ya que la página no se puede almacenar en caché.
if (req.http.Cookie) {
# 1. Agregue un punto y coma al frente de la cadena de cookies.
# 2. Eliminar todos los espacios que aparecen después de punto y coma.
# 3. Haga coincidir las cookies que queremos conservar, agregando el espacio que eliminamos
# anteriormente de vuelta. (1) es el primer grupo coincidente en el regsuball.
# 4. Elimine todas las demás cookies, identificándolas por el hecho de que tienen
# sin espacio después del punto y coma anterior.
# 5. Elimine todos los espacios y puntos y comas desde el principio y el final del
# cadena de cookies.
establecer req.http.Cookie = ";" + req.http.Cookie;
establecer req.http.Cookie = regsuball (req.http.Cookie, "; +", ";");
establecer req.http.Cookie = regsuball (req.http.Cookie, "; (SESS [a-z0-9] + | SSESS [a-z0-9] + | NO_CACHE) =", "; 1 =");
establecer req.http.Cookie = regsuball (req.http.Cookie, "; [^] [^;] *", "");
establecer req.http.Cookie = regsuball (req.http.Cookie, "^ [; ] + | [; ] + $", "");

if (req.http.Cookie == "") {
# Si no quedan cookies restantes, elimine el encabezado de la cookie. Sí hay
# no hay encabezados de cookies, el comportamiento predeterminado de Varnish será el almacenamiento en caché
# la página.
no establecido req.http.Cookie;
}
más {
# Si quedan cookies (una sesión o una cookie NO_CACHE), no
# caché de la página. Pásalo a Apache directamente.
volver (pasar);
}
}
}

# Establecer un encabezado para rastrear un caché HITs y MISSes.
sub vcl_deliver {
# Eliminar encabezados personalizados amigables para ban-lurker al entregar al cliente.
no establecido resp.http.X-Url;
desarmado resp.http.X-Host;
# Comente esto para facilitar la depuración de etiquetas de caché Drupal en el desarrollo.
unset resp.http.Cache-Tags;
no establecido resp.http.X-Drupal-Cache-Contexts;

if (obj.hits > 0) {
establecer resp.http.Cache-Tags = "GOLPEAR";
}
más {
establecer resp.http.Cache-Tags = "PIERDA";
}
}

# Indique a Varnish qué hacer en el caso de ciertas respuestas de back-end (beresp).
sub vcl_backend_response {
# Establecer encabezados personalizados amigables para ban-lurker.
establecer beresp.http.X-Url = bereq.url;
establecer beresp.http.X-Host = bereq.http.host;

# Caché 404s, 301s, a 500s con una vida útil corta para proteger el backend.
if (beresp.status == 404 || beresp.status == 301 || beresp.status == 500) {
establecer beresp.ttl = 10m;
}

# No permita que los archivos estáticos establezcan cookies.
# (? i) denota mayúsculas y minúsculas en PCRE (expresiones regulares compatibles con perl).
# Esta lista de extensiones aparece dos veces, una vez aquí y otra vez en vcl_recv
# asegúrese de editar ambos y mantenerlos iguales.
if (bereq.url ~ "(? i). (pdf | asc | dat | txt | doc | xls | ppt | tgz | csv | png | gif | jpeg | jpg | ico | swf | css | js) (?. *)? $") {
unset beresp.http.set-cookie;
}

# Permitir que los elementos permanezcan en caché hasta 6 horas después de su vencimiento.
establecer beresp.grace = 6h;
}

Asegúrese de editar la línea para agregar la dirección de nombre de dominio correcta. Luego navegue a: /etc/apache2/ports.conf y abre el ports.conf archivo. Cambia el texto:

Escuchar 80

A:

Escucha 8080

Luego navegue a: /etc/apache2/apache2.conf y abre el apache2.conf archivo. Cambiar la configuración “Permitir anular ninguno” a “Permitir anular todo” y guardar la configuración.

Opciones Índices FollowSymLinks
AllowOverrideAll
Requerir todo otorgado

Para finalizar, navegue a /etc / apache2 / sites-available & abra todos los archivos disponibles, cambiando el puerto de 80 a 8080 en la configuración del host virtual.

En el último paso, cree un nuevo archivo de host virtual para el nombre de dominio en: /etc/apache2/sites-available/yourdomain.conf y agregue el siguiente código:

ServerAdmin [email protected]
DocumentRoot /var/www/html/example.com
ServerName example.com
ServerAlias ​​www.example.com

Aplicación SetHandler / x-httpd-php

Opciones de FollowSymLinks
AllowOverrideAll

DirectoryIndex index.php
Opciones Índices FollowSymLinks MultiViews
AllowOverrideAll
Requerir todo otorgado

ErrorLog /var/log/apache2/example.com-error_log
CustomLog /var/log/apache2/example.com-access_log common

Reiniciar apache & Caché de barniz para completar la instalación en LÁMPARA. los Drupal 8 los ajustes de configuración se pueden administrar con módulos de integración en el siguiente paso.

Paso dos: instalar módulos para la gestión de caché en Drupal 8

Hay mucha competencia entre Drupal 8 módulos para Caché de barniz gestión con el módulo más popular para Drupal 7 todavía en desarrollo & No está listo para su uso en producción. Los módulos más antiguos pueden no ser compatibles Caché de barniz 4.x normas.

ARCHIVOS REQUERIDOS – DESCARGAS:

  • Purga: (Descargar archivos)
  • Purgador de barniz: (Descargar archivos)

MÓDULOS ALTERNATIVOS DE GESTIÓN DE CACHÉ:

  • Purgador HTTP genérico: (Descargar archivos)
  • Purga de Acquia: (Descargar archivos)
  • Purga sólida: (Descargar archivos)

DRUPAL 8 MÓDULOS EN DESARROLLO:

  • Barniz: (Descargar archivos)

A los efectos de este Tutorial, solo es necesario instalar el Purga & Purgador de barniz módulos Los módulos de gestión de caché alternativos son solo para uso opcional.

Supervisar el estado de la Barniz módulo para un Drupal 8 versión o instalación & pruebe la versión de desarrollo para proporcionar comentarios sobre errores, problemas o cambios necesarios.

Drupal 8 Se recomienda que los editores tengan Drush instalado para instalar módulos o limpiar el Caché de barniz. Para uso avanzado, cree un sitio completo Etiqueta de caché sistema.

los Purgador HTTP genérico el módulo proporciona soporte para CDN integración con Caché de barniz & Drupal 8, que los otros módulos generalmente carecen.

los Purga de Acquia El módulo está diseñado específicamente para Nube de acquia integración. los Purga sólida módulo reescribe el Acquia código de versión para admitir todos los sitios web.

Recomendado: Navegar a: / admin / modules / install e instalar el Purga & Purgador de barniz módulos Habilitar los módulos & revisar la configuración de caché global del sitio web.

Paso tres: Configure los ajustes de caché de barniz global

Para optimizar el Drupal 8 Configuración de CMS para Caché de barniz incluido el soporte de almacenamiento en caché de proxy inverso, abra el settings.php archivo encontrado en / sites / default carpeta y agregar:

$ settings [‘reverse_proxy’] = VERDADERO;
$ settings [‘reverse_proxy_addresses’] = array (‘127.0.0.1’);

En Drupal 8 administración, navegue a: / admin / config / development / performance y establezca la configuración de caché según sea necesario (es decir, 15 minutos, 1 hora o 24 horas, dependiendo del tráfico del sitio web del usuario y la demanda de recursos del sistema). Establecer 1 hora o 1 día como predeterminado.

Cómo alojar sitios web de Drupal 8 con caché de barniz en planes VPS

Guarde la configuración en “Agregar archivos CSS” y “Agregar archivos JavaScript” globalmente:

Cómo alojar sitios web de Drupal 8 con caché de barniz en planes VPS

Para finalizar, continúe con el siguiente paso para configurar el Purga & Purgador de barniz módulos incluyendo cualquier Etiquetas de caché o PROHIBICIÓN valores requeridos por sección en sitios web de alto tráfico.

Paso cuatro: configurar los módulos de administración de caché de Drupal

Drupal 8 los editores web requieren la capacidad de borrar el Caché de barniz, calentar el caché con contenido, & preparar Etiquetas de caché para diferentes secciones de contenido o tipos de contenido para borrar en el comando. Utilizar el Purga & Purgador de barniz módulos para estas capacidades.

Navegar a: / admin / config / development / performance / purge y seleccione “Purgador de barniz” como el purgador predeterminado para el caché:

Cómo alojar sitios web de Drupal 8 con caché de barniz en planes VPS

Guarde la configuración y seleccione una nueva etiqueta para la configuración. Escoger “Etiqueta” Para el Tipo y entra 127.0.0.1 Para el Nombre de host con Puerto 80 (Ubuntu) o 8080 (Debian) como los valores predeterminados.

Asegúrese de configurar “PROHIBICIÓN” como el método de solicitud con la configuración HTTP en el esquema:

Cómo alojar sitios web de Drupal 8 con caché de barniz en planes VPS

Guarde la configuración y haga clic en el “Encabezados” pestaña para establecer “Etiquetas de purga-caché” como el Encabezamiento y “[Invalidación: expresión]” como Valor:

Cómo alojar sitios web de Drupal 8 con caché de barniz en planes VPS

Haga clic en el “Configurar registro ” vincular y agregar marcas de verificación a todas las casillas para purger_varnish_xxx valor:

Cómo alojar sitios web de Drupal 8 con caché de barniz en planes VPS

Drupal 8 los desarrolladores pueden usar Drush para limpiar el Barniz cache:

barniz seco-purgar-todo

Navegar a: / admin / config / development / performance / purge para limpiar el Caché de barniz o usa el Drush comando con herramientas CLI. Algunos usuarios de D8 prefieren el Desarrollar módulo.

Drupal 8 los desarrolladores pueden usar herramientas como isvarnishworking.uk o PanteónVerificación de barniz para probar el estado de la instalación en su servidor web & Páginas de CMS.

Conclusión: caché de barniz para sitios Drupal 8 de alto tráfico

Caché de barniz es una parte absolutamente esencial de un Drupal 8 pila de servidores web para sitios web de alto tráfico que frecuentemente tienen más de 100 usuarios a la vez o millones de visitas.

Caché de barniz funciona mejor con NGINX, la Adv Agg módulo, Redis, Memcached, Zend Opcache, APC, & una CDN servicio para optimizar un Drupal 8 servidor web para la velocidad.

Drupal 8 los editores web requerirán un mínimo de VPS o Servidor dedicado plan para correr Caché de barniz o elige un Alojamiento en la nube plan con Caché de barniz pre instalado.

Echa un vistazo a estos 3 principales servicios de alojamiento de Drupal:

ChemiCloud

Precio inicial:
$ 2.76


Fiabilidad
10


Precios
9,9


Fácil de usar
9,9


Apoyo
10


Caracteristicas
9,9

Leer comentarios

Visita ChemiCloud

Hostinger

Precio inicial:
$ 0.99


Fiabilidad
9.3


Precios
9.3


Fácil de usar
9.4


Apoyo
9.4


Caracteristicas
9.2

Leer comentarios

Visita Hostinger

Alojamiento A2

Precio inicial:
$ 3.92


Fiabilidad
9.3


Precios
9.0


Fácil de usar
9.3


Apoyo
9.3


Caracteristicas
9.3

Leer comentarios

Visita A2 Hosting

Artículos de procedimientos relacionados

  • Cómo optimizar el almacenamiento en caché de Drupal 8 con APC en cPanel Hosting
    intermedio
  • Cómo alojar sitios web de Drupal 8 con Redis en planes VPS
    intermedio
  • Cómo alojar sitios web de Drupal 8 con HHVM en planes VPS
    intermedio
  • Cómo alojar sitios web de Drupal 8 con servidores NGINX en planes VPS
    intermedio
  • Cómo optimizar Drupal para Google Pagespeed?
    intermedio
Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me