Configuración de Proxy Reverso con Nginx y UWSGI en Python

Clase 15 de 22Curso de Despliegue de Aplicaciones Python en la Nube

Resumen

¿Cómo conectar un socket UWSGI con Nginx?

Conectar un socket de UWSGI con Nginx es un paso clave en el proceso de despliegue de aplicaciones en Python. UWSGI crea un archivo de socket que será utilizado por servicios como Nginx para mostrar la aplicación en un navegador web. Sin esta conexión, la aplicación no es accesible para los usuarios.

¿Qué es un proxy reverso?

El concepto de proxy reverso juega un papel fundamental aquí. Un proxy reverso es un servidor que se coloca delante de servidores web para dirigir las peticiones de los usuarios al servidor adecuado. En este caso, Nginx actúa como proxy reverso conectándose al socket y redirigiendo las solicitudes a UWSGI.

¿Cómo configurar Nginx?

Para conectar Nginx con UWSGI, sigue estos pasos:

  1. Accede a la configuración de Nginx:

    • Usa la terminal para navegar a la carpeta de configuración de Nginx (/etc/nginx).
    • Ejecuta ls para listar los archivos y busca sites-available y sites-enabled.
  2. Editar el archivo de configuración:

    • Con el comando cat, revisa el archivo en sites-available que corresponde a tu dominio.
    • Para hacer cambios, utiliza un editor como vim con privilegios de superusuario (sudo).
  3. Modificar las configuraciones:

    • Borra las líneas temporales con el comando que duplica la tecla D (DD) en vim.
    • Incluye las nuevas configuraciones, como include y las configuraciones de UWSGI.
    • Usa uwsgi_pass con el protocolo unix para pasar el socket correcto a Nginx.
    • Asegúrate de finalizar cada línea con un punto y coma ;.
  4. Validar y reiniciar Nginx:

    • Antes de reiniciar Nginx, valida los cambios con nginx -t para comprobar que la sintaxis es correcta.
    • Si es así, reinicia el servicio con sudo service nginx restart.

Con estos pasos, habrás conectado exitosamente tu dominio con la aplicación Python usando Nginx y UWSGI.

¿Cómo añadir salud de verificación con Nginx?

Un elemento crucial del despliegue es comprobar la salud del sistema. Aprende a crear un endpoint de verificación en Nginx para asegurar que los sistemas funcionan correctamente.

¿Por qué es importante un estado de verificación?

Cuando tienes varios procesos ejecutándose, como Nginx y UWSGI, uno de ellos puede fallar y causar un error 500 en tu sitio. Un endpoint de verificación te permitirá monitorizar y validar si al menos uno de los servicios está funcionando.

¿Cómo configurarlo?

  1. Abre el archivo de configuración de Nginx:

    • Sigue los mismos pasos anteriores para acceder y editar el archivo de configuración.
  2. Agrega una nueva locación:

    • Añade una sección location que apunte a un nuevo endpoint, por ejemplo, /status.
    • Configura lo que se mostrará cuando se acceda a este endpoint.
  3. Revisa y reinicia:

    • Una vez configurado, guarda los cambios.
    • Valida la configuración de nuevo con nginx -t.
    • Si todo está correcto, reinicia el servicio de Nginx.

Así, podrás asegurarte de que tus servidores están operativos y puedes actuar rápidamente en caso de fallo. ¡Sigue aprendiendo y perfeccionando tus habilidades de despliegue en Python y administración de servidores!