Varnish Cache · 7 min read · Feb 12, 2026

Instalar Varnish Cache 6 para Apache/Nginx en CentOS 8

Varnish Cache es un potente proxy HTTP inverso utilizado para acelerar aplicaciones web que está disponible como software de código abierto. Varnish almacena en caché tanto contenido estático como dinámico. Maneja todas las solicitudes entrantes antes de que lleguen a su servidor web backend. Se sitúa entre un navegador web y el servidor web Apache o Nginx. La caché de Varnish almacena todas las solicitudes de página entrantes en memoria para que los servidores web no tengan que crear la misma página web una y otra vez.

En esta publicación, le mostraremos cómo instalar la caché de Varnish con Apache y Nginx en CentOS 8.

Requisitos previos

  • Un servidor que ejecute CentOS 8.
  • Una contraseña de root configurada en su servidor.

Comenzando

Antes de comenzar, se recomienda actualizar los paquetes de su sistema a la última versión. Puede actualizarlos ejecutando el siguiente comando:

dnf update -y

Una vez que todos los paquetes estén actualizados, puede proceder al siguiente paso.

Instalar Varnish

Por defecto, el paquete de Varnish está incluido en el repositorio predeterminado de CentOS 8. Puede instalarlo ejecutando el siguiente comando:

dnf install varnish -y

Después de instalar Varnish, edite el archivo de configuración predeterminado de Varnish y defina la dirección del servidor web Nginx o Apache.

nano /etc/varnish/default.vcl

Cambie las siguientes líneas:

backend default { .host = "127.0.0.1"; .port = "8080"; }

Guarde y cierre el archivo cuando haya terminado.

Configurar Varnish

Por defecto, Varnish escucha en el puerto 6081. Por lo tanto, necesitará configurar Varnish para escuchar en el puerto 80. Puede configurarlo editando el archivo varnish.service:

nano /lib/systemd/system/varnish.service

Encuentre la siguiente línea:

ExecStart=/usr/sbin/varnishd -a :6081 -f /etc/varnish/default.vcl -s malloc,256m

Reemplace con la siguiente línea:

ExecStart=/usr/sbin/varnishd -a :80 -f /etc/varnish/default.vcl -s malloc,256m

Guarde y cierre el archivo, luego recargue el demonio systemd para aplicar los cambios:

systemctl daemon-reload

A continuación, inicie el servicio de Varnish y habilítelo para que se inicie al reiniciar el sistema con el siguiente comando:

systemctl start varnish systemctl enable varnish

También puede verificar el estado de Varnish con el siguiente comando:

systemctl status varnish

Debería obtener la siguiente salida:

? varnish.service - Varnish Cache, un acelerador HTTP de alto rendimiento Loaded: loaded (/usr/lib/systemd/system/varnish.service; disabled; vendor preset: disabled) Active: active (running) since Fri 2021-03-12 04:17:32 EST; 4s ago Process: 6391 ExecStart=/usr/sbin/varnishd -a :80 -f /etc/varnish/default.vcl -s malloc,256m (code=exited, status=0/SUCCESS) Main PID: 6392 (varnishd) Tasks: 217 Memory: 99.5M CGroup: /system.slice/varnish.service ??6392 /usr/sbin/varnishd -a :80 -f /etc/varnish/default.vcl -s malloc,256m ??6402 /usr/sbin/varnishd -a :80 -f /etc/varnish/default.vcl -s malloc,256m Mar 12 04:17:32 masternode systemd[1]: Starting Varnish Cache, un acelerador HTTP de alto rendimiento... Mar 12 04:17:32 masternode varnishd[6391]: Debug: Version: varnish-6.0.6 revision 29a1a8243dbef3d973aec28dc90403188c1dc8e7 Mar 12 04:17:32 masternode varnishd[6391]: Debug: Platform: Linux,4.18.0-193.6.3.el8_2.x86_64,x86_64,-junix,-smalloc,-sdefault,-hcritbit Mar 12 04:17:32 masternode varnishd[6392]: Version: varnish-6.0.6 revision 29a1a8243dbef3d973aec28dc90403188c1dc8e7 Mar 12 04:17:32 masternode varnishd[6392]: Platform: Linux,4.18.0-193.6.3.el8_2.x86_64,x86_64,-junix,-smalloc,-sdefault,-hcritbit Mar 12 04:17:32 masternode varnishd[6391]: Debug: Child (6402) Started Mar 12 04:17:32 masternode varnishd[6392]: Child (6402) Started Mar 12 04:17:32 masternode varnishd[6392]: Child (6402) said Child starts Mar 12 04:17:32 masternode systemd[1]: Started Varnish Cache, un acelerador HTTP de alto rendimiento.

En este punto, Varnish está iniciado y escuchando en el puerto 80. Puede verificarlo con el siguiente comando:

ss -antpl | grep varnishd

Debería obtener la siguiente salida:

LISTEN 0 10 127.0.0.1:34977 0.0.0.0:* users:(("varnishd",pid=1532,fd=11)) LISTEN 0 128 0.0.0.0:80 0.0.0.0:* users:(("cache-main",pid=1542,fd=6),("varnishd",pid=1532,fd=6)) LISTEN 0 128 [::]:80 [::]:* users:(("cache-main",pid=1542,fd=7),("varnishd",pid=1532,fd=7)) LISTEN 0 10 [::1]:34909 [::]:* users:(("varnishd",pid=1532,fd=10))

En este punto, Varnish está instalado y configurado. Ahora puede proceder al siguiente paso.

Instalar y Configurar Nginx para Trabajar con Varnish

Primero, necesitará instalar el paquete de Nginx en su servidor. Puede instalarlo con el siguiente comando:

dnf install nginx -y

Una vez instalado, necesitará cambiar el puerto de escucha de Nginx de 80 a 8080. Puede hacerlo editando el archivo de configuración predeterminado de Nginx:

nano /etc/nginx/nginx.conf

Cambie las siguientes líneas:

listen 8080 default_server; listen [::]:8080 default_server;

Guarde y cierre el archivo, luego verifique la sintaxis de Nginx para cualquier error utilizando el siguiente comando:

ginx -t

Debería obtener la siguiente salida:

nginx: el archivo de configuración /etc/nginx/nginx.conf tiene una sintaxis correcta nginx: la prueba del archivo de configuración /etc/nginx/nginx.conf fue exitosa

A continuación, inicie el servicio de Nginx y habilítelo para que se inicie al reiniciar el sistema:

systemctl start nginx systemctl enable nginx

También puede verificar el puerto de escucha de Nginx con el siguiente comando:

ss -antpl | grep 8080

Debería obtener la siguiente salida:

LISTEN 0 128 0.0.0.0:8080 0.0.0.0:* users:(("nginx",pid=5569,fd=8),("nginx",pid=5568,fd=8)) LISTEN 0 128 [::]:8080 [::]:* users:(("nginx",pid=5569,fd=9),("nginx",pid=5568,fd=9))

En este punto, la caché de Varnish está instalada y configurada para redirigir todas las solicitudes que llegan al puerto 80 al servidor web Nginx que está escuchando en el puerto 8080.

Puede verificar si la caché de Varnish está funcionando o no con el siguiente comando:

curl -I http://localhost

Debería obtener la siguiente salida:

HTTP/1.1 200 OK Server: nginx/1.14.1 Date: Fri, 12 Mar 2021 09:18:32 GMT Content-Type: text/html Content-Length: 4057 Last-Modified: Mon, 07 Oct 2019 21:16:24 GMT ETag: "5d9bab28-fd9" X-Varnish: 2 Age: 0 Via: 1.1 varnish (Varnish/6.0) Accept-Ranges: bytes Connection: keep-alive

Instalar y Configurar Apache para Trabajar con Varnish

Primero, necesitará instalar el paquete del servidor web Apache en su sistema. Puede instalarlo con el siguiente comando:

dnf install httpd -y

Después de instalar Apache, edite el archivo de configuración predeterminado de Apache y cambie el puerto de escucha de 80 a 8080.

nano /etc/httpd/conf/httpd.conf

Cambie la siguiente línea:

Listen 8080

Guarde y cierre el archivo, luego inicie el servicio de Apache y habilítelo para que se inicie al reiniciar el sistema con el siguiente comando:

systemctl start httpd systemctl enable httpd

También puede verificar el puerto de escucha de Apache con el siguiente comando:

ss -antpl | grep httpd

Debería obtener la siguiente salida:

LISTEN 0 128 *:8080 *:* users:(("httpd",pid=7556,fd=4),("httpd",pid=7555,fd=4),("httpd",pid=7554,fd=4),("httpd",pid=7552,fd=4))

En este punto, la caché de Varnish está instalada y configurada para redirigir todas las solicitudes que llegan al puerto 80 al servidor web Apache que está escuchando en el puerto 8080.

Puede verificar si la caché de Varnish está funcionando o no con el siguiente comando:

curl -I http://localhost

Debería obtener la siguiente salida:

Date: Fri, 12 Mar 2021 09:21:14 GMT Server: Apache/2.4.37 (centos) Content-Location: index.html.zh-CN Vary: negotiate,accept-language TCN: choice Last-Modified: Fri, 14 Jun 2019 03:37:43 GMT ETag: "fa6-58b405e7d6fc0;5bd5365602e05" Accept-Ranges: bytes Content-Length: 4006 Content-Type: text/html; charset=UTF-8 Content-Language: zh-cn X-Varnish: 2 Age: 0 Via: 1.1 varnish (Varnish/6.0) Connection: keep-alive

Trabajando con la Línea de Comandos de Varnish

Varnish viene con varias utilidades útiles que le ayudan a monitorear y controlar Varnish.

varnishadm es una utilidad de línea de comandos utilizada para listar los backends configurados.

varnishadm

Debería ver la siguiente salida:

200 ----------------------------- Varnish Cache CLI 1.0 ----------------------------- Linux,4.18.0-193.6.3.el8_2.x86_64,x86_64,-junix,-smalloc,-sdefault,-hcritbit varnish-6.0.6 revision 29a1a8243dbef3d973aec28dc90403188c1dc8e7 Type 'help' for command list. Type 'quit' to close CLI session.

Ahora, ejecute el siguiente comando para listar todos los backends:

varnish> backend.list

Debería ver la siguiente salida:

200 Backend name Admin Probe Last updated boot.default probe Healthy (no probe) Sat, 13 Mar 2021 03:00:02 GMT

varnishlog

La utilidad varnishlog se utiliza para mostrar los registros de todas las solicitudes de usuario.

varnishlog

Debería obtener la siguiente salida:

* << BeReq >> 6 - Begin bereq 5 fetch - VCL_use boot - Timestamp Start: 1615604631.507187 0.000000 0.000000 - BereqMethod GET - BereqURL / - BereqProtocol HTTP/1.1 - BereqHeader Host: 69.87.218.214 - BereqHeader Upgrade-Insecure-Requests: 1 - BereqHeader User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.141 Safari/537.36 - BereqHeader Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9 - BereqHeader Accept-Language: en-GB,en-US;q=0.9,en;q=0.8 - BereqHeader X-Forwarded-For: 106.213.193.241 - BereqHeader Accept-Encoding: gzip - BereqHeader X-Varnish: 6 - VCL_call BACKEND_FETCH - VCL_return fetch - BackendOpen 31 boot.default 127.0.0.1 8080 127.0.0.1 58860 - BackendStart 127.0.0.1 8080 - Timestamp Bereq: 1615604631.507458 0.000270 0.000270 - Timestamp Beresp: 1615604631.507844 0.000657 0.000386 - BerespProtocol HTTP/1.1 - BerespStatus 200 - BerespReason OK - BerespHeader Server: nginx/1.14.1 - BerespHeader Date: Sat, 13 Mar 2021 03:03:51 GMT - BerespHeader Content-Type: text/html - BerespHeader Content-Length: 4057 - BerespHeader Last-Modified: Mon, 07 Oct 2019 21:16:24 GMT

varnishstat

El comando varnishstat le proporciona información sobre estadísticas en memoria, almacenamiento, hilos creados y objetos eliminados.

varnishstat

Debería ver la siguiente pantalla:

Estadísticas de Varnish

varnishtop

El comando varnishtop lee los registros de memoria compartida de varnishd y presenta una lista actualizada continuamente de las entradas de registro que ocurren con más frecuencia.

varnishtop

Debería ver la siguiente pantalla:

varnishtop

varnishhist

Varnishhist analiza los registros de varnish y imprime las últimas n solicitudes por su procesamiento.

varnishhist

Debería ver la siguiente pantalla:

varnishhist

Conclusión

En la guía anterior, aprendió cómo instalar y configurar la caché de Varnish con el servidor web Apache y Nginx. Ahora puede implementar la caché de Varnish en el entorno de producción y acelerar el rendimiento de su sitio web. No dude en preguntarme si tiene alguna pregunta.

Share: X/Twitter LinkedIn

Recibe nuevas publicaciones en tu bandeja de entrada.

No spam. Cancela la suscripción en cualquier momento.