Cómo acelerar Apache con la caché HTTP de Varnish en Ubuntu 18.04 LTS

Varnish es un servidor proxy centrado en el almacenamiento en caché HTTP. Está diseñado como un acelerador HTTP y puede actuar como un proxy inverso para su servidor web (Apache o Nginx). El barniz se ha utilizado para sitios web de alto perfil y alto tráfico, incluidos Wikipedia, The Guardian y The New York Times.

En este tutorial, le mostraremos cómo instalar y configurar el acelerador HTTP de Varnish como proxy inverso para el servidor web Apache. El servidor web real Apache se ejecutará bajo un puerto HTTP no estándar (ejecutándose en el puerto 8080). Y Varnish se ejecutará como proxy inverso en el puerto HTTP 80. Para esta guía, utilizaremos el servidor Ubuntu 18.04 LTS.

Lo que haremos

  1. Instalar el servidor web Apache
  2. Cambiar el puerto predeterminado de Apache
  3. Instalar Varnish
  4. Configurar Varnish
  5. Probar la configuración

Requisitos previos

  • Ubuntu 18.04 LTS
  • Privilegios de root

Paso 1-Instalar el servidor web Apache

Para iniciar, instale el servidor web Apache. Por defecto, está disponible en el repositorio Ubuntu.

Actualice el repositorio de Ubuntu y luego instale Apache usando el comando apt.

apt update
apt install -y apache2

Una vez finalizada la instalación, inicie el servicio Apache y habilítelo para que se ejecute automáticamente en el momento del arranque del sistema mediante los siguientes comandos systemctl.

systemctl start apache2
systemctl enable apache2

El servidor web Apache ha sido instalado.

A continuación, para permitir el acceso de todos al servidor web, debemos permitir HTTP y HTTPS en nuestra regla de firewall. Por defecto, Ubuntu viene con un paquete de firewall llamado UFW.

Abra nuevos puertos SSH, HTTP y HTTPS utilizando los siguientes comandos UFW.

ufw allow ssh
ufw allow http
ufw allow https

Ahora inicie el servicio de firewall y habilítelo para que se inicie automáticamente al arrancar el sistema.

ufw enable

Escriba ‘y’ y presione Entrar para confirmar.

Se han abierto nuevos puertos para HTTP, HTTPS y SSH, a los que se puede acceder desde fuera de la red.

Si desea probar el servidor web Apache, puede usar el comando netstat y asegurarse de que apache se ejecuta en el puerto 80.

netstat -plntu

O puede usar el siguiente comando curl.

curl -I hakase-labs.co

Debe obtener el resultado como se muestra a continuación.

Paso 2-Cambiar el puerto predeterminado de Apache

En este tutorial, usaremos Apache como servidor backend, y no se ejecutará bajo el puerto HTTP estándar 80. El servidor web Apache se ejecutará en el puerto 8080 como motor, y el puerto HTTP estándar 80 será utilizado por ‘Varnish’.

Para cambiar el puerto predeterminado de apache, necesitamos editar los puertos de configuración de apache.conf’ y toda la configuración del host virtual en el directorio ‘sitios disponibles’.

Vaya al directorio de configuración de Apache.

cd /etc/apache2

Reemplace el puerto ‘ 80 ‘ por ‘ 8080 ‘en los puertos de configuración de Apache.conf ‘y todos los archivos de host virtual en el directorio ‘sitios disponibles’. Podemos hacerlo ejecutando los siguientes comandos sed.

sed -i -e 's/80/8080/g' ports.conf
sed -i -e 's/80/8080/g' sites-available/*

A continuación, pruebe la configuración de Apache y asegúrese de que no hay error, luego reinicie el servicio Apache.

apachectl configtest
systemctl restart apache2

Ahora Apache se está ejecutando bajo el puerto HTTP ‘8080’, compruébelo usando el comando’ netstat ‘ como se muestra a continuación.

netstat -plntu

Asegúrese de tener el resultado que se muestra a continuación.

Así que puede ver que el servidor web Apache se está ejecutando en el puerto ‘8080’.

Paso 3-Instalar Varnish HTTP Accelerator

En este paso, instalaremos Varnish desde el repositorio de Ubuntu. Y para esta guía, utilizaremos Barniz 5.2.

Instale varnish utilizando el siguiente comando apt.

apt install -y varnish

Una vez finalizada la instalación, inicie Varnish y habilítelo para que se inicie automáticamente en el arranque del sistema.

systemctl start varnish
systemctl enable varnish

Barniz ha sido instalado en el sistema Ubuntu 18.04.

De forma predeterminada, se ejecuta en los puertos ‘ 6081 ‘para la dirección pública y’ 6082 ‘ para la dirección de host local. Compruébelo usando el comando netstat a continuación.

netstat -plntu

Y obtendrá el puerto de barniz predeterminado.

Paso 4-Configurar Varnish como Proxy Inverso para Apache

En este paso, configuraremos varnish en la parte frontal del servidor web Apache. Varnish se ejecutará bajo el puerto http 80, y cada solicitud de los clientes será manejada por él, antes de ser enviada al servidor web Apache que se ejecuta en el puerto 8080.

– Configuración de Backend

Vaya al directorio de configuración ‘varnish’ y haga una copia de seguridad del archivo predeterminado ‘default’.vcl’.

cd /etc/varnish/
cp default.vcl default.vcl.aseli

Edite el valor predeterminado de la configuración de barniz.vcl ‘ usando el editor vim.

vim default.vcl

Defina la configuración ‘backend’ en la línea 16. El backend para nuestra configuración es Apache, y se está ejecutando en el puerto 8080. Por lo tanto, la configuración de barniz para nuestra configuración de apache debe ser la siguiente:

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

Guardar y salir.

– Ejecutar Barniz en el puerto 80

A continuación, necesitamos cambiar los puertos de barniz predeterminados. Los puertos predeterminados para varnish son ‘6081’ y ‘6082’, y necesitamos cambiar el puerto al puerto HTTP 80 (solo para direcciones públicas).

Edite la configuración del parámetro varnish en el directorio ‘/ etc / default’.

cd /etc/default/
vim varnish

Edite la línea ‘DAEMON_OPTS’, cambie el puerto predeterminado ‘ 6081 ‘para la dirección pública con el puerto HTTP estándar’ 80 ‘ como se muestra a continuación.

DAEMON_OPTS="-a :80 \
-T localhost:6082 \
-f /etc/varnish/default.vcl \
-S /etc/varnish/secret \
-s malloc,256m"

Guardar y salir.

A continuación, necesitamos editar el archivo de servicio de barniz ‘barniz.servicio». Vaya al directorio’ /lib/systemd/system ‘ y edite el archivo de servicio usando vim.

cd /lib/systemd/system/
vim varnish.service

En la línea’ ExecStart’, cambie el comando varnish start como se muestra a continuación.

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

Guardar y salir.

Vuelva a cargar la configuración del servicio systemd y, a continuación, reinicie varnish.

systemctl daemon-reload
systemctl restart varnish

Ahora compruebe varnish y asegúrese de que se está ejecutando en el puerto HTTP 80.

netstat -plntu

Por lo tanto, Varnish ahora se ejecuta bajo el puerto HTTP 80 como front-end para el servidor web Apache, que está en el puerto 8080.

Paso 5-Prueba

Prueba con el comando curl.

curl -I hakase-labs.co

Asegúrese de obtener el encabezado HTTP como se muestra a continuación.

Comprobando desde el navegador web, la URL de mi servidor de prueba es http://hakase-labs.co/. Elija la URL de su servidor aquí.

Y todavía tenemos contenido de Apache.

Compruebe el registro de barniz utilizando el comando’ varnishncsa’.

varnishncsa

Y obtenemos el registro solo del registro de acceso de Apache.

Se ha completado la instalación y configuración de Varnish para el servidor web Apache.

Leave a Reply

Tu dirección de correo electrónico no será publicada.