Una de las funciones fundamentales de un proxy inverso es servir como un búfer de protección, protegiendo los servidores backend al interceptar y manejar las solicitudes de clientes Al hacerlo, oculta información valiosa sobre los servidores, como sus direcciones IP y otros detalles confidenciales. Esto agrega una capa adicional de seguridad a su infraestructura, lo que dificulta que los posibles atacantes apunten directamente a sus servidores.
Instalación y Configurando Nginx
Vamos a obtener todo up a datos y instalar su proveedor web servidor.
apt update
apt install nginx
Cambios Nginxpara determinar cómo maneja las solicitudes entrantes y brinda las respuestas adecuadas:
nano /etc/nginx/sites-available/default
Dentro de este archivo, puede configurar Nginx para adaptarse a sus requisitos específicos. Le permite definir bloques de servidor, certificados SSL y otras directivas para optimizar el rendimiento y la seguridad de su configuración de proxy inverso. Pero por qué vinimos aquí es para comentar la línea relacionada con IPv6, guardar los cambios y salir del archivo.
Ejecuta esto:
dpkg --configure -a
El comando garantiza que todos los paquetes en el sistema estén configurados correctamente mediante el proceso de instalación y configuración de cualquier paquete pendiente. Comprueba el estado de todos los paquetes instalados y los configura según sus respectivos scripts de instalación.
Vuelve a comprobar que Nginx está en buen estado de funcionamiento.
service nginx status
Ahora debe configurar un firewall para asegurarse de que solo el tráfico necesario pueda llegar a su proxy inverso. Usaremos Sin Complicaciones Firewall (UFW) para este propósito.
Instalar ufw:
apt install ufw
torre it on:
ufw enable
Permitir HTTP tráfico a go a by:
ufw allow 'Nginx HTTP'
cheque las estado y corriente reglas of las firewall:
ufw status
Vamos a crear el archivo de configuración con el nombre de nuestro dominio.
Dentro de este archivo, defina la configuración específica para su proxy: nombre del servidor, puertos de escucha y la ubicación donde se reenviarán las solicitudes entrantes:
server {
listen 80;
#listen [::]:80;
server_name test_domain.ru www.test_domain.ru;
location / {
proxy_pass ip_addres_app;
include proxy_params;
}
}
Reemplaza ip_dirección_applicación las real IP dirección or dominio nombre of su proveedor backend servidor.
El proxy se configura mediante /etc/nginx/proxy_paramarchivo s. La configuración predeterminada está bien para este ejemplo, pero puede cambiarla si lo necesita.
Habilite el proxy inverso haciendo un enlace simbólico:
ln -s /etc/nginx/sites-available/test_domain.ru /etc/nginx/sites-enabled/
Un enlace simbólico, también conocido como enlace simbólico o enlace suave, es un tipo especial de archivo que actúa como un puntero o referencia a otro archivo o directorio en el sistema de archivos. Le permite crear un acceso directo a un archivo o directorio, proporcionando una forma conveniente de acceder o hacer referencia a él desde una ubicación diferente.
Ejecute una prueba para asegurarse de que nada esté roto:
nginx -t
If no errores en mostrado:
service nginx restart
En el momento, Nginx está configurado con un proxy inverso. El siguiente paso es instalar y configurar el servidor de pruebas de aplicaciones.
Pruebas
Ahora, para probar el proxy inverso que acaba de crear, comencemos un Gunicorn (abreviatura de "Unicornio verde"). Es un servidor diseñado para trabajar con solicitudes web para Python aplicaciones web mientras Nginx no es tan bueno en hacerlo. Entonces, para probar la funcionalidad de su proxy ejecutaremos un simple Python aplicación para validar si toda esta pila está funcionando.
Instalarlo:
apt install gunicorn
Crear las presentar:
nano wsgi.py
poner así texto dentro it:
def wsgi(environ, start_response):
start_response("200 OK", [])
return iter([b"Welcome, to new wsgi server"])
Este wsgi.py presentar contiene a simples solicitud en línea. esa responde a "200 OK" estado mensaje.
El comando comienza gunicornio dos obrero en costes:
gunicorn --workers=2 wsgi:wsgi
Al iniciar Gunicorn, se inicia un proceso maestro para supervisar el funcionamiento general del servidor. El proceso maestro asume la responsabilidad de administrar los procesos de trabajo, adaptarse a los cambios de configuración y monitorear la salud de los trabajadores. La tarea real de manejar las solicitudes se asigna a los procesos de trabajo.
Cada proceso de trabajo opera de forma independiente, con la capacidad de gestionar una o más solicitudes al mismo tiempo. La cantidad de procesos de trabajo se puede adaptar para satisfacer requisitos específicos, teniendo en cuenta factores como los recursos del sistema disponibles, la carga de tráfico anticipada y las características de su aplicación.
Al emplear múltiples procesos de trabajo, Gunicorn optimiza el manejo de solicitudes, lo que permite un procesamiento paralelo y tiempos de respuesta mejorados. Este enfoque garantiza la utilización eficiente de los recursos del sistema y permite que el servidor maneje un mayor volumen de solicitudes simultáneas sin verse abrumado.
Abra un navegador desde el host remoto e ingrese la dirección/dominio de nuestro servidor. Deberíamos recibir un mensaje como este:
Conclusiones
Con esta guía has aprendido:
- cómo instalar Nginx y Gunicornio;
- añadir una Nginx HTTP regla;
- configurar la parte del servidor para probar la aplicación;
- crear enlaces simbólicos;
- inicie el servidor para probar la aplicación.