
Piense en lo que sucede cuando navega a la página actual.Hizo clic en un enlace recibido en el boletín informativo o hizo clic en un enlace en la página de inicio Red de menta de tecnología Entonces fue traído a este artículo.
En resumen, usted (o incluso su navegador) envía una solicitud HTTP al servidor web que aloja el sitio y el servidor devuelve una respuesta HTTP.
Suena simple, pero el proceso implica mucho más que eso.hay que hacer mucho procesamiento Terminal de servicio Para representar una página bien formada, puede ver todos los recursos en ella: estáticos y dinámicos.
Sin profundizar demasiado, puede imaginar que si un servidor web tuviera que responder a muchas de estas solicitudes simultáneamente (solo unos pocos cientos, para empezar), rápidamente podría ponerse de rodillas a sí mismo o a todo el sistema.
Eso es pintar, un acelerador HTTP de alto rendimiento y un proxy inverso, puede salvar el día.En este artículo, explicaré cómo instalar y usar pintar como parte delantera apache o nginx Para un almacenamiento en caché más rápido de las respuestas HTTP sin más carga en el servidor web.
Sin embargo, debido a pintar Por lo general, al almacenar su caché en la memoria en lugar de en el disco, debemos tener cuidado y limitar el espacio de RAM asignado para el caché. Discutiremos cómo hacer esto en un minuto.
Cómo funciona el barniz
Instale Varnish Cache en un servidor Linux
Este artículo asume que ha instalado lámpara o LEMP servidor. De lo contrario, instale una de estas pilas antes de continuar.
Documento oficial instalación recomendada pintar Desde el propio repositorio del desarrollador, ya que siempre proporcionan la última versión. También puede optar por instalar paquetes desde el repositorio oficial de su distribución, aunque puede estar un poco desactualizado.
Además, tenga en cuenta que el repositorio del proyecto solo proporciona soporte para 64 bits sistema, y para 32 bits máquina, tendrá que recurrir al repositorio oficial mantenido de su distribución.
En este artículo, instalaremos pintar De los repositorios soportados oficialmente para cada distribución. La razón principal detrás de esta decisión es brindar uniformidad en el método de instalación y garantizar la resolución automática de dependencias para todas las arquitecturas.
Instale Varnish en Linux basado en Debian
En distribuciones basadas en Debian, puede instalar pintar Use el comando apt como se muestra.
# apt update # apt install varnish

Instale Varnish en Linux basado en RHEL
En distribuciones basadas en RHEL como CentOS, Rocky y AlmaLinux, debe habilitar el repositorio EPEL antes de instalar pintar Use el comando yum como se muestra.
# yum install epel-release # yum update # yum install varnish

Si la instalación se completó con éxito, tendrá uno de los siguientes pintar La versión depende de su distribución:
# varnishd -V varnishd (varnish-6.5.1 revision 1dae23376bb5ea7a6b8e9e4b9ed95cdc9469fb64)
Finalmente, debes comenzar pintar Si el proceso de instalación no lo hizo por usted y no permitió que se inicie en el arranque, hágalo manualmente.
# systemctl start varnish # systemctl enable varnish # systemctl status varnish

puerto predeterminado 6081 Utilizado por el servicio de barniz, puede confirmarlo ejecutando el siguiente comando netstat.
# netstat -tunlp | grep 6081

Configuración de Varnish Cache en Linux
Como dijimos antes, Varnish se encuentra en medio de clientes externos y servidores web. Por esta razón, para que el caché sea transparente para el usuario final, necesitamos:
- cambiar puerto por defecto 6081 donde el barniz escucha 80.
- Cambiar el puerto predeterminado en el que escucha el servidor web 8080 en lugar del predeterminado 80.
- Redirige el tráfico entrante de Varnish al servidor web.Afortunadamente, Varnish hace esto automáticamente cuando terminamos. 1) y 2) paso.
cambiar puerto de barniz
este barniz El proceso es controlado por sistema y tiene su archivo unitario /usr/lib/systemd/system/varnish.servicioque contiene la configuración predeterminada del tiempo de ejecución de Varnish.
Aquí necesitamos cambiar el puerto de barniz predeterminado. 6081 puerto 80 El tamaño de la memoria caché es 1 GB Como se muestra, ejecute el siguiente comando, abrirá el archivo de la unidad en el editor como se muestra.
notas: puede cambiar la cantidad de memoria en función de los recursos de hardware o elegir guardar el archivo de caché en el disco.
$ sudo systemctl edit --full varnish OR # systemctl edit --full varnish

después del cambio /etc/systemd/system/varnish.servicio archivo, necesita recargar Sistematizar Daemonize el proceso ejecutando:
# systemctl daemon-reload
Cambiar puerto Apache o Nginx
Después de cambiar el puerto de barniz, ahora necesita cambiar su apache o nginx Puerto de servidor web predeterminado 80 al puerto de red más común, que es 8080.
---------- On Debian-based Systems ---------- # nano /etc/apache2/ports.conf [On Apache] # /etc/nginx/sites-enabled/default [On Nginx] ---------- On RHEL-based Systems ---------- # vi /etc/httpd/conf/httpd.conf [On Apache] # vi /etc/nginx/nginx.conf [On Nginx]

No olvides reiniciar después de hacer cambios pintar y servidor web.
# systemctl restart varnish ---------- On Debian-based Systems ---------- # systemctl restart apache2 # systemctl restart nginx ---------- On RHEL-based Systems ---------- # systemctl restart httpd # systemctl restart nginx
Prueba de caché Varnish en Linux
La primera prueba consiste en hacer una HTTP Solicítelo a través del comando curl y verifique que Varnish lo maneje:
# curl -I

Varnish también incluye dos útiles herramientas:
- Ver en tiempo real el registro de Varnish, llame intuitivamente registro de barniz.
- Muestra las estadísticas de caché de Varnish, denominadas estado de barniz.
Como segunda prueba, en el screencast a continuación, mostramos tanto registros como estadísticas. sistema operativo central servidor(desarrollador 1la mitad superior de la pantalla) y Debian servidor(desarrollador 2la mitad inferior de la pantalla) para enviar solicitudes HTTP y recibir respuestas.
Comparar el rendimiento del servidor web
Nuestra tercera y última prueba incluirá la evaluación comparativa del servidor web y Varnish Herramienta de referencia AB Y compare el tiempo de respuesta y la carga de la CPU en cada caso.
En este ejemplo particular, usaremos sistema operativo central servidor, pero puede usar cualquier distribución y obtener resultados similares.mira a carga media Filas por segundo en la parte superior y en la salida abdominales.
y abdominalesseremos enviados 50 (-c 50) al mismo tiempo solicitar y repetir la prueba 1000000 veces (por -n 1000000Varnish devolverá más solicitudes por segundo y menor promedio de carga.
importante: Recuerde que Varnish está escuchando en el puerto 80 (el puerto HTTP predeterminado) y Apache está escuchando en el puerto 8080. También puede anotar el tiempo que lleva completar cada prueba.
# ab -c 50 -n 100000 /index.html
en conclusión
En este artículo, discutimos cómo configurar un pintar en caché delante del servidor web, apacheo nginxTenga en cuenta que no hemos profundizado predeterminado.vcl Archivo de configuración, que nos permite personalizar aún más la estrategia de almacenamiento en caché.
Ahora puede consultar la documentación oficial para obtener más ejemplos de configuración, o utilizar el formulario a continuación para dejar un comentario.