Varnish es un servidor proxy centrado en el almacenamiento en caché de HTTP. Está diseñado como acelerador de HTTP y puede actuar como 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 el New York Times.
En este tutorial, le mostraré cómo instalar y configurar el acelerador HTTP Varnish como un proxy inverso para el servidor web Nginx. El servidor web real Nginx se ejecutará en el puerto HTTP no estándar 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
- Instalar Nginx en Ubuntu 16.04
- Configurar Nginx en el puerto 8080
- Instalar Varnish en Ubuntu 16.04
- Configurar Varnish como proxy inverso para Nginx
- Configurar el cortafuegos UFW
- Pruebas
Requisitos
- Ubuntu 16.04
- Privilegios de raíz
Paso 1:instalar Nginx en Ubuntu 16.04
El primer paso que debemos hacer para este tutorial es instalar Nginx al sistema Ubuntu 16.04. En este paso, instalaremos Nginx (está disponible en el repositorio oficial de Ubuntu), luego iniciaremos el servicio y luego lo habilitaremos para que se inicie cada vez que se inicia el sistema.
Instale Nginx desde el repositorio de Ubuntu usando el comando apt.
sudo apt install nginx -y
Una vez completada la instalación, inicie Nginx y habilítelo para que se inicie cada vez que se inicie el sistema con los siguientes comandos systemctl.
systemctl start nginx
systemctl enable nginx
El servidor web de Nginx se ejecuta en el puerto HTTP predeterminado; verifíquelo con netstat y asegúrese de que Nginx utilice el puerto HTTP.
netstat -plntu
Paso 2:configurar Nginx en el puerto 8080
En este paso, configuraremos nginx para que se ejecute en el puerto HTTP no estándar 8080. Para este propósito, debemos editar los archivos de host virtual en el directorio 'sitios disponibles'.
Vaya al directorio de configuración de Nginx y edite el archivo de host virtual "predeterminado" usando vim.
cd /etc/nginx/
vim sites-available/default
Cambie el valor de la línea 'escuchar' a 8080.
listen 8080 default_server;
listen [::]:8080 default_server;
Guardar y salir.
Ahora pruebe la configuración de Nginx y asegúrese de que no haya ningún error. Luego reinicie el servicio.
nginx -t
systemctl restart nginx
Ahora pruebe nginx nuevamente usando netstat y asegúrese de que se esté ejecutando en el puerto HTTP no estándar 8080.
netstat -plntu
El servidor web Nginx se instaló y ahora se ejecuta en el puerto 8080.
Paso 3:instalar Varnish en Ubuntu 16.04
Ahora necesitamos instalar Varnish en el sistema. Podemos instalar la última versión de la herramienta desde la fuente. Y para esta guía, instalaremos Varnish desde el repositorio de Ubuntu - Varnish v4.
Instale el barniz usando el comando apt a continuación.
sudo apt install varnish -y
Ahora inicie Varnish y permita que se inicie en el arranque del sistema usando los siguientes comandos systemctl.
systemctl start varnish
systemctl enable varnish
De forma predeterminada, Varnish utilizará el puerto 6081 para el acceso público y el puerto 6082 para la interfaz web de administración de Varnish. Verifíquelo usando el comando netstat y asegúrese de que esos puertos estén en la lista.
netstat -plntu
Se ha instalado Varnish HTTP Accelerator.
Paso 4:configurar Varnish como proxy inverso para Nginx
En este tutorial, utilizaremos Varnish como proxy inverso para el servidor web Nginx. Varnish se ejecutará en el puerto HTTP 80 y el servidor web Nginx en el puerto HTTP 8080 (está completo).
En este paso, configuraremos Varnish para Nginx, definiremos el servidor backend y luego cambiaremos Varnish para que se ejecute en el puerto HTTP 80.
Ahora vaya al directorio de configuración de Varnish y edite el archivo 'default.vcl'.
cd /etc/varnish
vim default.vcl
En la línea de fondo, defina la configuración como se muestra a continuación.
backend default {
.host = "127.0.0.1";
.port = "8080";
}
Guardar y salir.
- .host =Dirección del servidor web back-end.
- .puerto =El servidor web respaldado que se ejecuta.
La configuración del backend se ha completado.
A continuación, debemos configurar Varnish para que se ejecute en el puerto HTTP 80. Vaya al directorio '/etc/default' y edite el archivo de configuración de Varnish 'varnish'.
cd /etc/default/
vim varnish
En la línea 'DAEMON_OPTS', cambie el puerto predeterminado 6081 al puerto HTTP 80.
DAEMON_OPTS="-a :80 \
-T localhost:6082 \
-f /etc/varnish/default.vcl \
-S /etc/varnish/secret \
-s malloc,256m"
Guardar y salir.
Ahora edite el archivo de servicio de barniz en el directorio '/lib/systemd/system'. Vaya al directorio del sistema systemd y edite el archivo varnish.service.
cd /lib/systemd/system
vim varnish.service
En la línea 'ExecStart', cambie el puerto varnish 6081 al puerto HTTP 80.
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 de systemd y reinicie varnish.
systemctl daemon-reload
systemctl restart varnish
Una vez completada la configuración, verifique Varnish usando el comando netstat a continuación.
netstat -plntu
Asegúrese de que Varnish se esté ejecutando en el puerto HTTP 80 como se muestra a continuación.
Se completó la configuración de Varnish como proxy inverso para Nginx.
Paso 5:configurar el cortafuegos UFW
El sistema Ubuntu viene con un firewall legible por humanos predeterminado llamado 'UFW'. Si no tiene el paquete, instálelo usando el comando apt a continuación.
sudo apt install ufw
En este paso, activaremos el firewall y abriremos nuevos puertos para SSH, HTTP y HTTPS.
Ejecute los comandos ufw a continuación.
ufw allow ssh
ufw allow http
ufw allow https
Ahora active el cortafuegos y habilítelo para que se inicie siempre en el momento del arranque.
ufw enable
Escribe 'y' y presiona Enter para confirmar.
El cortafuegos UFW está activado y ahora se puede acceder a HTTP y al puerto HTTPS desde la red externa.
Paso 6 - Prueba
- Prueba usando cURL
Probando el barniz usando el comando curl, para que podamos ver los encabezados HTTP del servidor.
curl -I hakase-labs.co
Y obtendrá el resultado del encabezado HTTP 'Via:1.1 varnish-v4' como se muestra a continuación.
- Prueba usando el navegador web
Abra su navegador web y escriba la siguiente URL o dirección del servidor. El mío es: http://hakase-labs.co
Asegúrese de obtener la página predeterminada de Nginx como se muestra a continuación.
- Prueba del registro de barniz
Varnish proporciona algunos comandos para administrar y ver registros. Usaremos 'varnishncsa' para obtener el registro de acceso de barniz.
varnishncsa
Y obtendrá el resultado como se muestra a continuación.
Se ha completado la instalación y configuración de Varnish como proxy inverso para el servidor web Nginx.