GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Cómo acelerar Apache con Varnish HTTP cache en Ubuntu 16.04 LTS

Varnish es un servidor proxy centrado en el almacenamiento en caché de HTTP. Está diseñado como un acelerador HTTP y puede actuar como un proxy inverso para su servidor web (Apache o Nginx). Varnish 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 Varnish como un proxy inverso para el servidor web Apache. El servidor web real Apache se ejecutará en 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, usaremos el servidor Ubuntu 16.04.

Lo que haremos

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

Requisitos

  • Ubuntu 16.04
  • Privilegios de raíz

Paso 1:instalar el servidor web Apache

Para comenzar, instale el servidor web Apache. De forma predeterminada, está disponible en el repositorio de Ubuntu.

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

sudo apt update
sudo apt install -y apache2

Una vez completada 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

Se ha instalado el servidor web Apache.

Luego, para permitir que todos accedan al servidor web, debemos permitir HTTP y HTTPS en nuestra regla de firewall. De manera predeterminada, Ubuntu viene con un paquete de firewall llamado UFW.

Abra nuevos puertos SSH, HTTP y HTTPS con los siguientes comandos ufw.

ufw allow ssh
ufw allow http
ufw allow https

Ahora inicie el servicio de firewall y permita que se inicie automáticamente al iniciar el sistema.

ufw enable

Escribe 'y' y presiona Enter para confirmar.

Se han abierto nuevos puertos para http, https y ssh, y se puede acceder a ellos desde fuera de la red.

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

netstat -plntu

O puede usar el siguiente comando curl.

curl -I hakase-labs.co

Debería obtener el resultado como se muestra a continuación.

Paso 2:cambiar el puerto predeterminado de Apache

En este tutorial, utilizaremos Apache como servidor backend y no se ejecutará en el puerto 80 http estándar. El servidor web Apache se ejecutará en el puerto 8080 como backend y el puerto 80 http estándar será utilizado por ' Barniz'.

Para cambiar el puerto de apache predeterminado, debemos editar la configuración de apache 'ports.conf' y toda la configuración del host virtual en el directorio 'sites-available'.

Vaya al directorio de configuración de Apache.

cd /etc/apache2

Reemplace el puerto '80' con '8080' en la configuración de Apache 'ports.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/*

Luego, pruebe la configuración de Apache y asegúrese de que no haya ningún error, luego reinicie el servicio de Apache.

apachectl configtest
systemctl restart apache2

Ahora Apache se ejecuta en el puerto http '8080', verifíquelo con el comando netstat como se muestra a continuación.

netstat -plntu

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

Entonces puede ver que el servidor web Apache se está ejecutando en el puerto '8080'.

Paso 3:instalar el acelerador HTTP Varnish

En este paso, instalaremos Varnish desde el repositorio de Ubuntu. Y para esta guía, usaremos el barniz 4.

Instale el barniz usando el siguiente comando apt.

sudo apt install -y varnish

Una vez completada la instalación, inicie Varnish y permita que se inicie automáticamente al iniciar el sistema.

systemctl start varnish
systemctl enable varnish

Varnish se ha instalado en el sistema Ubuntu 16.04.

De forma predeterminada, se ejecuta en los puertos '6081' para la dirección pública y '6082' para la dirección localhost. Compruébalo 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 el barniz en la parte frontal del servidor web Apache. Varnish se ejecutará en el puerto http 80 y gestionará todas las solicitudes de los clientes antes de enviarlas al servidor web Apache que se ejecuta en el puerto 8080.

- Configuración de servidor

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 la configuración de barniz 'default.vcl' usando el editor vim.

vim default.vcl

Defina la configuración de 'backend' en la línea 16. El backend de 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 debería ser la siguiente:

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

Guardar y salir.

- Ejecución de barniz en el puerto 80

A continuación, debemos cambiar los puertos de barniz predeterminados. Los puertos predeterminados para Varnish son '6081' y '6082', y debemos cambiar el puerto al puerto 80 http (solo para dirección pública).

Edite la configuración del parámetro de barniz 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, debemos editar el archivo de servicio de barniz 'varnish.service'. 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 de inicio de barniz 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 luego reinicie Varnish.

systemctl daemon-reload
systemctl restart varnish

Ahora revise el barniz y asegúrese de que se esté ejecutando en el puerto http 80.

netstat -plntu

Entonces, Varnish ahora se ejecuta en el puerto http 80 como front-end para el servidor web Apache, que se encuentra en el puerto 8080.

Paso 5 - Prueba

Prueba usando el comando curl.

curl -I hakase-labs.co

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

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

Y aún obtenemos contenido de Apache.

Verifique el registro de barniz usando el comando 'varnishncsa'.

varnishncsa

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

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

Referencia

  • Alijo de barniz
  • Apache HTTPD


Ubuntu
  1. Cómo acelerar Apache con Varnish HTTP cache en Ubuntu 18.04 LTS

  2. Cómo instalar el servidor HTTP OpenLiteSpeed ​​con PHP en Ubuntu 18.04 LTS

  3. Cómo instalar el servidor HTTP Git con Nginx en Ubuntu 16.04

  4. Cómo instalar el servidor HTTP Git con Nginx en Ubuntu 20.04

  5. Cómo instalar Varnish Cache en Ubuntu 18.04 LTS

Cómo habilitar el protocolo HTTP/2 con Apache en Ubuntu 20.04

Cómo instalar InvoiceNinja en un servidor Ubuntu 18.04 con Apache/Nginx

Cómo instalar InvoiceNinja en un servidor Ubuntu 20.04 con Apache/Nginx

Cómo instalar phpMyAdmin con Apache en Ubuntu 22.04 LTS

Cómo instalar el servidor HTTP Git en Ubuntu 20.04 LTS

Cómo acelerar Apache con Varnish Cache en CentOS 7