¿Qué es un proxy inverso?
Un proxy inverso es un servidor que se coloca frente a uno o más servidores web, interceptando las solicitudes de los clientes. Cuando los clientes intentan conectarse al servidor de origen de un sitio web, esas solicitudes son interceptadas por el servidor proxy inverso. El servidor proxy reenvía estas solicitudes al servidor proxy y recibe respuestas de este para enviarlas a los clientes.
Beneficios del proxy inverso:
- Mejora la seguridad
- Equilibrio de carga
- Almacenamiento en caché
- Cifrado SSL y más
Guía de instalación
Requisitos previos
- Servidor web Nginx instalado en Ubuntu Server 20.04 LTS
- Sitio web configurado en Ubuntu Server 20.04 LTS
- Conexión SSH a máquinas remotas (Nginx y sitio web)
En esta guía, le mostraré cómo puede configurar el servidor web NGINX como un proxy inverso con la ayuda de unos simples pasos. Para ello he utilizado una web desplegada en un servidor ubuntu 20.04 LTS. Esto actuará como el servidor principal o puede decir servidor proxy. El servidor web Nginx está implementado en otro servidor ubuntu 20.04 LTS que configuraré como proxy inverso en este tutorial. En mi máquina local, tengo instalado Linux Mint 20.02 desde donde estableceré conexiones remotas con:
- Dirección IP de la máquina virtual del servidor web Nginx:10.11.120.2
- Dirección IP de la máquina virtual del sitio web implementado:10.11.120.3
¡Empecemos!
Paso 1:SSH a la máquina Nginx
El primer paso es conectarse a la máquina remota donde está instalado Nginx. Configuraremos Nginx como proxy inverso en esta máquina. Para hacer eso, ejecute el siguiente comando agregando el nombre de usuario y la IP de la máquina donde tiene implementado su Nginx. En mi caso es nginx y 10.11.120.2.
ssh [email protected]
Paso 2:deshabilite el host virtual Nginx preconfigurado:
A continuación, desvincule la configuración predeterminada del host virtual de Nginx ejecutando el siguiente comando:
unlink /etc/nginx/sites-enabled/default
Paso 3:Cree un archivo de configuración de proxy inverso
Luego, crearemos un archivo de configuración de proxy inverso.
Para hacer eso, vaya al directorio de sitios disponibles siguiendo la ruta como se muestra en el siguiente comando:
cd /etc/nginx/sites-available
Ahora, cree un archivo de configuración de proxy inverso y ábralo con un editor nano como este:
sudo nano example.conf
Copie las siguientes líneas y péguelas en el archivo que acaba de crear.
server { listen 80; server_name example.com; location / { proxy_pass http://10.11.120.3:80; } }
Esta configuración indica que el proxy inverso de Nginx está escuchando en el puerto 80 y redirigiendo todas las solicitudes de conexión entrantes por ejemplo.com hacia el puerto 80 del servidor 10.11.12.3.
Paso 4:active el archivo creando un enlace simbólico
Aquí, guardaremos el archivo y lo activaremos creando un enlace simbólico como este:
sudo ln -s /etc/nginx/sites-available/example.conf /etc/nginx/sites-enabled/
Paso 5:Pruebe el archivo de configuración
Es hora de probar nuestro archivo de configuración de proxy inverso en busca de errores. Para hacer eso, ejecute el siguiente comando:
sudo nginx -t
Si recibe el mensaje "syntax is ok" como se muestra a continuación, significa que está listo para comenzar.
Paso 6:reiniciar Nginx
El paso final es reiniciar el servidor web Nginx para que el nuevo archivo de configuración de proxy inverso que acabamos de agregar se configure con el servidor web Nginx. Haga esto ejecutando el siguiente comando:
sudo systemctl restart nginx
Ahora puede probarlo abriendo el navegador web en su máquina y ejecutando el sitio web. Se le enviará a través de Nginx a la máquina 10.11.120.3.
Si el sitio web funciona bien, significa que configuró correctamente Nginx Reverse Proxy. ¡Felicidades! ¡Hiciste un gran trabajo!
En este tutorial, vio cómo puede configurar fácilmente el servidor web Nginx como un proxy inverso agregando un archivo de configuración. Al hacer esto, puede proteger su servidor principal contra diferentes ataques cibernéticos o puede utilizarlo para equilibrar la carga del tráfico pesado entrante. Todo depende de ti.
Para ver cómo puede configurar Nginx Server Block y Secure Nginx con Let's Encrypt SSL en Rocky Linux 8/CentOS 8, visite:
https://linuxways.net/centos/how-to-configure-nginx-server-block-and-secure-nginx-with-lets-encrypt-ssl-on-rocky-linux-8-centos-8/