Cómo instalar NGINX Reverse Proxy en Ubuntu 22.04
Usar NGINX como Reverse Proxy es una opción muy popular y recomendable. Para configurarlo, solo necesitas instalar NGINX, crear un archivo de configuración y ajustar las configuraciones del servidor. Para terminar, puedes comprobar que todo funcione correctamente utilizando Gunicorn.
Pasos para instalar NGINX como Reverse Proxy en Ubuntu 22.04
Para contar con un servidor web seguro, flexible y eficiente en el uso de recursos, es recomendable utilizar un Reverse Proxy. Este se coloca entre el cliente y el servidor web sin que los usuarios noten su presencia. Una de las mejores opciones para gestionar todas las solicitudes entrantes es NGINX como Reverse Proxy. A continuación, te explicamos cómo instalarlo y configurarlo en Ubuntu 22.04.
En nuestra Digital Guide también puedes encontrar artículos acerca de la instalación de NGINX en Ubuntu 20.04 y sobre qué es un servidor Proxy.
Requisitos para una correcta instalación
Para poder instalar un NGINX Reverse Proxy en Ubuntu 22.04, necesitas lo siguiente:
- tener instalado un servidor Ubuntu,
- la dirección IP o el dominio Unix del servidor,
- el dominio de tu servidor,
- privilegios
sudo
para el servidor.
Instalar NGINX como Reverse Proxy
Actualiza tu repositorio a través del terminal en el primer paso para tener acceso a los paquetes más recientes. Después, instala NGINX utilizando el comando apt install
. Escríbelo de la siguiente forma:
$ sudo apt update
$ sudo apt install nginx
bashConfirma con [Y] y pulsa [Enter] para implementar los ajustes.
A continuación, configura tu firewall para que NGINX reciba acceso a tu servidor. Para ello, debes añadir una excepción con el siguiente comando:
$ sudo ufw allow 'Nginx HTTP'
bashFinalmente, comprueba que la instalación de NGINX se ha realizado correctamente. Este es el código que debes usar para ello:
$ systemctl status nginx
bashSi NGINX se ha instalado correctamente, obtendrás un resultado como este:
nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2024-06-24 06:52:46 UTC; 39min ago
Docs: man:nginx(8)
Main PID: 9919 (nginx)
Tasks: 2 (limit: 2327)
Memory: 2.9M
CPU: 50ms
CGroup: /system.slice/nginx.service
├─9919 "nginx: master process /usr/sbin/nginx -g daemon on; master_process on;"
└─9920 "nginx: worker process"
bashCrear un archivo de configuración y personalizar el servidor
Después, configura tu bloque de servidor para preparar bien el NGINX Reverse Proxy para tu sistema. Para ello, abre un nuevo archivo de configuración con el editor de texto nano. Usa el siguiente comando, reemplazando “tu_dominio” por el nombre real de tu dominio:
$ sudo nano /etc/nginx/sites-available/tu_dominio
bashUna vez que el archivo esté abierto, añade el siguiente contenido. Sustituye los marcadores “tu_dominio” y “server_adresse” por tu dominio y la IP o el Unix Domain Socket de tu servidor:
server {
listen 80;
listen [::]:80;
server_name tu_dominio www.tu_dominio;
location / {
proxy_pass http://server_adresse;
include /etc/nginx/proxy_params;
}
}
txtGuarda y cierra el archivo. El contenido mostrado es el ajuste estándar de NGINX, que utiliza el puerto 80 para reaccionar ante las solicitudes de tu dominio y servidor. La directiva proxy_pass
es clave para que NGINX funcione como un Reverse Proxy. Si es necesario, también puedes configurar servidores adicionales.
A continuación, crea un enlace al directorio sites-enabled
, al que NGINX accede al principio. Utiliza este comando reemplazando de nuevo el marcador “tu_dominio” por el nombre correspondiente:
$ sudo ln -s /etc/nginx/sites-available/ihre_domain/etc/nginx/sites-enabled/
bashComprueba que no hay errores en la configuración:
$ sudo nginx -t
bashSi no recibes ningún mensaje de error, puedes reiniciar el NGINX Reverse Proxy para aplicar todos los cambios. Para ello, introduce el siguiente comando:
$ sudo systemctl restart nginx
bashCon ello, ya estará configurado NGINX como Reverse Proxy. En el siguiente apartado te explicamos cómo comprobar el proxy, pero se trata de un paso que no es obligatorio para completar la configuración.
Comprobar el NGINX Reverse Proxy con Gunicorn
Para probar NGINX Reverse Proxy, siempre puedes utilizar tu servidor llamándolo a través de la shell. Como alternativa, puedes usar el servidor web HTTP Gunicorn, que se complementa muy bien con NGINX Reverse Proxy. En primer lugar, actualiza los paquetes e instala el servidor:
$ sudo apt update
$ sudo apt install gunicorn
bashA continuación, crea una función sencilla que se enviará como respuesta HTTP a tu navegador. Para ello, utiliza otra vez nano:
$ nano test.py
bashAbre el archivo e introduce este código:
def app(environ, start_response):
start_response("200 OK", [])
return iter([b"Esto es una prueba"])
txtGuarda y cierra el archivo. Después, inicia Gunicorn y accede al módulo de prueba:
$ gunicorn --worker=2 test:app
bashEl resultado debería tener este aspecto:
[2024-06-24 07:09:29 +0000] [10568] [INFO] Starting gunicorn 20.1.0
[2024-06-24 09:14:37 +0000] [10568] [INFO] Listening at: http://127.0.0.1:8000 (10568)
[2024-06-24 09:14:37 +0000] [10568] [INFO] Using worker: sync
[2024-06-24 09:14:37 +0000] [10569] [INFO] Booting worker with pid: 10569
[2024-06-24 09:14:37 +0000] [10570] [INFO] Booting worker with pid: 10570
bashDe acuerdo con esto, Gunicorn está interactuando con la dirección estándar http://127.0.0.1:8000
. En el último paso, abre tu navegador y accede al dominio que habías configurado con NGINX. El NGINX Reverse Proxy debería mostrar el mensaje “Esto es una prueba”.