Ir al contenido principal

Configurar el Default de Nginx para Aplicaciones Python

Configurar el Default de Nginx para Aplicaciones Python

En este post vamos a revisar cómo configurar un servidor Nginx para dirigir las peticiones HTTP a aplicaciones Python, como Flask o Django, sin necesidad de modificar el código Python.

Pasos para Configurar el Nginx:

1. Crear un bloque de servidor en Nginx

En el archivo de configuración de Nginx (usualmente en /etc/nginx/sites-available/default o /etc/nginx/nginx.conf), debes crear un bloque de servidor para redirigir las peticiones HTTP a tu aplicación Python. Este bloque también puede incluir un proxy para manejar conexiones mediante sockets Unix.

server {
    listen 80;
    server_name comer-ia.duckdns.org;

    location /reportemec {
        include proxy_params;
        proxy_pass http://unix:/srv/python/lucia/lucia.sock;
    }
}
        

2. Explicación del Código

El código anterior establece las siguientes configuraciones:

  • listen 80; - Indica que el servidor escuchará en el puerto 80 (HTTP).
  • server_name comer-ia.duckdns.org; - Establece el nombre de dominio de tu servidor.
  • location /reportemec - Define la ruta en la que se manejarán las peticiones.
  • proxy_pass http://unix:/srv/python/lucia/lucia.sock; - Establece el proxy inverso, redirigiendo las solicitudes al socket Unix de tu aplicación Python.

3. Reiniciar Nginx

Después de realizar estos cambios en la configuración de Nginx, es necesario reiniciar el servicio para aplicar los cambios:

sudo systemctl restart nginx
        

Resultado en el Navegador

Una vez que Nginx haya sido reiniciado, puedes acceder a tu aplicación Python desde la ruta configurada, por ejemplo:

Cómo Manejar Varias Aplicaciones Django con Nginx

1. Estructura de Nginx para Múltiples Aplicaciones

Si tienes varias aplicaciones Django en ejecución, cada una con su propio socket (por ejemplo, app1.sock, app2.sock, etc.), puedes configurar Nginx para que redirija las solicitudes a los diferentes sockets según el prefijo de la URL.

2. Configuración de Nginx para Dos Aplicaciones Django

Supón que tienes dos aplicaciones, una para la API de app1 y otra para app2. Sus rutas podrían ser como sigue:

server {
    listen 80;
    server_name comer-ia.duckdns.org;

    location /app1 {
        include proxy_params;
        proxy_pass http://unix:/srv/python/app1/app1.sock;
    }

    location /app2 {
        include proxy_params;
        proxy_pass http://unix:/srv/python/app2/app2.sock;
    }
}
        

En este ejemplo, las solicitudes a /app1 se redirigirán al socket de app1, mientras que las solicitudes a /app2 se redirigirán al socket de app2.

Conclusión

Este es un método sencillo para configurar Nginx con múltiples aplicaciones Python sin tener que modificar el código fuente de las aplicaciones. Solo necesitas configurar Nginx para que funcione como un proxy inverso y dirigir las peticiones a los diferentes sockets de cada aplicación.

Comentarios

Entradas populares de este blog

Instalación y Configuración de MySQL 5.7 en Ubuntu 24.04 LTS

Instalar MySQL 5.7 en Ubuntu 24.04 1. Descargar e instalar MySQL Copiar mkdir ~/mysql57 cd ~/mysql57 wget https://cdn.mysql.com/archives/mysql-5.7/mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz tar -zxvf mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz sudo mv mysql-5.7.44-linux-glibc2.12-x86_64 /usr/local/mysql sudo ln -s /usr/local/mysql/bin/mysql /usr/local/bin/mysql 2. Instalar dependencias necesarias IMPORTANTE: Se descargan las versiones nuevas de las librerías y se las vincula con las librerías que necesita MySQL. Copiar sudo apt update # Reemplazo de libaio sudo apt install libaio1t64 # Reemplazo de libtinfo y ncurses sudo apt install libtinfo6 libncurses6 Copiar # Crear los enlaces simbólicos sudo ln -sf /usr/lib/x86_64-linux-gnu/libaio.so.1t64 /usr/lib/libaio.so.1 sudo ln -sf /usr/lib/x86_64-linux-gnu/libtinfo.so.6 /usr/lib/x86_64-linux-gnu/libtinfo.so.5 sudo ln -sf /usr/lib/x86_64-linux-gnu/libncurses.so.6 /usr/lib/x86_64...

Instalar DeepSeek R1 1.5B en Ubuntu 24.04 sin GPU

Instalar DeepSeek en tu sistema sin GPU, pasos: Especificaciones del Entorno de Pruebas Componente Detalle SO Ubuntu Cinnamon 24.04 LTS x86_64 Kernel 6.8.0-51-generic CPU Intel i7-6820HQ (8 núcleos) @ 3.600GHz GPUs AMD ATI Radeon HD 8830M / R7 250 / R7 M465X Intel HD Graphics 530 RAM 15.882 GB (3.716 GB en uso) Resolución 1440x810 Escritorio Cinnamon 6.0.4 1. Instalar Git LFS sudo apt-get install git-lfs git lfs install 2. Clonar el repositorio cd /opt sudo mkdir deepseek && sudo chown $USER:$USER deepseek cd deepseek git clone https://huggingface.co/deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B 3. Crear y activar un entorno virtual python -m ve...

Instalar Jasper Studio 6.21 para Ubuntu 24.04

Instalar js-studiocomm_6.21.3 en Ubuntu 24.4 Para instalar Jaspersoft Studio en Ubuntu 24.4, sigue estos pasos: 1. Descargar Jasper Studio Descarga la versión js-studiocomm_6.21.3 desde el siguiente enlace: Jaspersoft Studio 6.21.3 2. Crear el directorio de instalación mkdir /opt/jasperstudio 3. Mover el archivo descargado mv /dir_descarga/js-studiocomm_6.21.3_linux_x86_64.tgz /opt/jasperstudio/ cd /opt/jasperstudio 4. Extraer el archivo tar -xvzf js-studiocomm_6.21.3_linux_x86_64.tgz cd js-studiocomm_6.21.3 5. Ejecutar Jaspersoft Studio ./Jaspersoft\ Studio 6. Crear acceso directo en el escritorio Para facilitar el acceso, crea un archivo .desktop en el escritorio: gedit ~/Escritorio/jaspersoft-studio.desktop En el archivo jaspersoft-studio.desktop , agrega lo siguiente: [Desktop Entry] Version=1.0 Ty...