Introducción
- Este artículo te guía a través del proceso de uso de Gunicorn, un servidor HTTP WSGI para Python, para ejecutar aplicaciones Flask, Django y otras aplicaciones WSGI en producción.
- Antes de empezar, asegúrate de tener Python y Gunicorn instalados en tu entorno. Puedes instalar Gunicorn usando el siguiente comando:
- Agrega también
gunicorna turequirements.txt, para que Square Cloud lo instale junto con tus demás dependencias:
requirements.txt
Uso básico
Para ejecutar una aplicación web de Python usando Gunicorn, necesitas tener una aplicación WSGI como flask, django o algún otro framework.Una vez que tengas tu aplicación lista, necesitas conocer el nombre del módulo y el nombre de la variable que contiene el objeto de la aplicación WSGI.
Por ejemplo, si tienes una aplicación Flask en un archivo llamado
app.py y la instancia de Flask se llama app, puedes ejecutarla con Gunicorn usando el siguiente comando:
python -m gunicornejecuta Gunicorn como un módulo de python.--bind 0.0.0.0:80le indica a Gunicorn que escuche en todas las interfaces de red en el puerto 80.app:appespecifica el nombre del módulo (app) y el nombre de la variable (app) que contiene el objeto de la aplicación WSGI.
wsgi.py que Django crea dentro del paquete de tu proyecto (reemplaza myproject por el nombre de tu proyecto):
Ejecución en Square Cloud
Coloca el comando en el campoSTART de tu archivo de configuración, para que Square Cloud inicie tu aplicación con Gunicorn:
squarecloud.app
Gunicorn debe hacer bind en
0.0.0.0:80: Square Cloud entrega el tráfico de tu subdominio al puerto 80 de tu aplicación. Square Cloud también define la variable de entorno PORT como 80, y Gunicorn la lee: sin la opción --bind, escucha en 0.0.0.0:$PORT cuando PORT está definida.Opciones adicionales
Gunicorn proporciona varias opciones para personalizar su comportamiento. Aquí mostraremos algunas opciones.Workers
--workers <number>
MEMORY. Si tu aplicación se detiene con LACK_OF_RAM, reduce el número de workers.
Name
--name <name>-n <name>
Worker-class
--worker-class <class>-k <class>
sync, pero también puedes usar gevent, eventlet, tornado u otro tipo de worker.
Extras
Gunicorn tiene muchas más opciones y funcionalidades que puedes explorar en la documentación oficial.Archivo de configuración
- También puedes definir las opciones de Gunicorn en un archivo de configuración de Python. Gunicorn carga automáticamente un archivo llamado
gunicorn.conf.pydel directorio donde se ejecuta, que en Square Cloud es la raíz de tu proyecto. Para cualquier otro nombre de archivo, pásalo con-c <file>.
gunicorn.conf.py
- Con este archivo en tu proyecto, el campo
STARTpuede ser simplemente:
squarecloud.app
Próximos pasos
Flask
Haz deploy de una aplicación Flask detrás de Gunicorn.
Django
Haz deploy de un proyecto Django detrás de Gunicorn.
La app no inicia
Soluciona EADDRINUSE, LACK_OF_RAM y otros fallos de inicio.
¿Te gustó este artículo?
- Creamos este contenido con mucho cuidado para ofrecer la mejor ayuda posible. Si este artículo te ayudó de alguna manera, ¡apoya nuestro trabajo! Los desarrolladores ya calificaron a Square Cloud con 4.9/5 en 402 reseñas en Google y Trustpilot: ¡deja la tuya también! Nos ayuda a entender qué es lo que más te importa.
Google Reviews
Deja tu reseña en Google Reviews.
Trustpilot
Deja tu reseña en Trustpilot.

