Varnish Cache es un potente acelerador de aplicaciones web gratuito, de código abierto y diseñado para sitios web dinámicos de alta carga. Varnish Cache se encuentra detrás del servidor web y puede acelerar su sitio web en un factor de entre 300 y 1000 veces. También se puede utilizar como equilibrador de carga si está ejecutando varios servidores. Varnish Cache funciona almacenando en caché las páginas web solicitadas en la memoria y sirviendo una página solicitada sin la demora de crear contenido desde cero cuando se solicita la misma información varias veces.
En este tutorial, le mostraremos cómo configurar Varnish Cache como un servidor proxy para Nginx en Ubuntu 18.04 VPS.
Requisitos
- Un Ubuntu 18.04 VPS nuevo en Atlantic.Net Cloud Platform.
- Una contraseña raíz configurada en su servidor.
Paso 1:crear el servidor en la nube de Atlantic.Net
Primero, inicie sesión en su servidor en la nube de Atlantic.Net. Cree un nuevo servidor, eligiendo Ubuntu 18.04 como sistema operativo con al menos 2 GB de RAM. Conéctese a su servidor en la nube a través de SSH e inicie sesión con las credenciales resaltadas en la parte superior de la página.
Una vez que haya iniciado sesión en su servidor Ubuntu 18.04, ejecute el siguiente comando para actualizar su sistema base con los últimos paquetes disponibles.
apt-get update -y
Paso 2:instalar Varnish Cache
apt-get install varnish -y
Después de una instalación exitosa, el servicio de caché de Varnish se inició automáticamente. Puede verificar el estado del servicio Varnish con el siguiente comando:
systemctl status varnish
Deberías obtener el siguiente resultado:
También puede verificar la versión instalada de Varnish con el siguiente comando:
varnishd -V
Debería ver el siguiente resultado:
netstat -ant
Debería ver el siguiente resultado:
Paso 3:instalar y configurar Nginx
En esta sección, instalaremos y configuraremos Nginx para que se asiente detrás del servidor de caché de Varnish. De forma predeterminada, Nginx se ejecuta en el puerto 80, por lo que deberá configurar Nginx para escuchar en el puerto 8088.
Primero, instale el servidor web Nginx con el siguiente comando:
apt-get install nginx -y
Después de instalar el servidor web Nginx, edite el archivo de configuración de host virtual predeterminado de Nginx:
nano /etc/nginx/sites-available/default
Cambie el puerto predeterminado de 80 a 8088, como se muestra a continuación:
server { listen 8088 default_server; listen [::]:8088 default_server; root /var/www/html; index index.html index.htm index.nginx-debian.html; server_name _; location / { try_files $uri $uri/ =404; } }
Nota:asegúrese de haber eliminado o comentado todas las entradas predeterminadas en los archivos, asegúrese de que solo se guarde el contenido anterior. De lo contrario, el servicio nginx se negará a iniciar
Guarde y cierre el archivo cuando haya terminado. Luego, reinicie el servicio Nginx para aplicar la configuración:
systemctl restart nginx
Paso 4:configurar Varnish Cache
A continuación, deberá configurar Varnish para usar el puerto 80 para que pueda enrutar el tráfico al servidor web Nginx a través del servidor de caché de Varnish.
Puede hacerlo editando el archivo /lib/systemd/system/varnish.service:
nano /lib/systemd/system/varnish.service
Cambie el puerto predeterminado de Varnish de 6081 a 80 como se muestra a continuación:
[Unit] Description=Varnish HTTP accelerator Documentation=https://www.varnish-cache.org/docs/4.1/ man:varnishd [Service] Type=simple LimitNOFILE=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,256m ExecReload=/usr/share/varnish/varnishreload ProtectSystem=full ProtectHome=true PrivateTmp=true PrivateDevices=true [Install] WantedBy=multi-user.target
Guarde y cierre el archivo cuando haya terminado. Luego, recarga el demonio systemd con el siguiente comando:
systemctl daemon-reload
A continuación, deberá configurar Nginx como servidor backend para Varnish. Puede hacerlo editando el archivo /etc/varnish/default.vcl:
nano /etc/varnish/default.vcl
Cambie el puerto de 8080 a 8088, como se muestra a continuación:
backend default { .host = "127.0.0.1"; .port = "8088"; }
Guarde y cierre el archivo cuando haya terminado.
Nota :Reemplace 127.0.0.1 con la dirección IP de su servidor Nginx si su servidor web Nginx está instalado en el otro host.
Finalmente, reinicie el servidor de caché de Varnish con el siguiente comando:
systemctl restart varnish
Paso 5:verificar el servidor de caché Varnish
En este punto, la caché Varnish está configurada para funcionar con el servidor web Nginx. Es hora de probarlo.
Puede verificar el caché de Varnish con el comando curl como se muestra a continuación:
curl -I your-server-ip
Deberías obtener el siguiente resultado:
HTTP/1.1 200 OK Server: nginx/1.14.0 (Ubuntu) Date: Sun, 01 Dec 2019 06:46:18 GMT Content-Type: text/html Last-Modified: Sun, 01 Dec 2019 06:41:28 GMT ETag: W/"5de36098-264" Vary: Accept-Encoding X-Varnish: 32770 3 Age: 17 Via: 1.1 varnish (Varnish/5.2) Accept-Ranges: bytes Connection: keep-alive
El resultado anterior indica claramente que está utilizando el servidor Nginx con Varnish Cache.
También puede verificar las estadísticas de almacenamiento en caché de Varnish con el siguiente comando:
varnishstat
Debería ver la siguiente pantalla:
También puede ver la clasificación de las entradas de registro de Varnish con el siguiente comando:
varnishtop
Salida:
Si tiene algún problema con el caché de Varnish, puede verificar el registro de Varnish con los siguientes comandos:
tail -f varnishncsa.log
Conclusión
¡Felicidades! Ha instalado y configurado con éxito el servidor Varnish Cache con Nginx en Ubuntu 18.04 VPS. Puede consultar la documentación de Varnish para optimizar su configuración según sus necesidades.