Despliegue

La última práctica consiste en tener una aplicación web desplegada en un ambiente de 'producción', es decir funcionando con la depuración en 'OFF' y conectada a un servidor web como ngix o apache en el puerto 80

El despliegue de una aplicación con django, está contada en: How to deploy with WSGI , How to use Django with Gunicorn, Deploying Gunicorn, Supervisor, y en las transparencias de clase.

Básicamente consiste en poner la configuración de producción, es decir en el archivo settings.py estarán las variables:

DEBUG = False

ALLOWED_HOSTS = ['*']

Con esto dejará de funcionar el servidor de desarrollo, y de servir los contenidos de /static, que tendrán que pasar a servirse desde el servidor web de producción. Django tiene un script: collectstatic para facilitar pasar los contenidos a otro directorio.

Después habrá que poner funcionar la aplicación con un servidor web wsgi, (p.e. gunicorn) y conectar la aplicación, y el resto de servicios que pudiera haber (los arhivos static), a un servidor web que también funcione como proxy inverso (p.e. nginx) en el puerto 80

Para automatizar el proceso, podremos hacer algún script con Makefile,

El despliegue se puede hacer en un contenedor usando docker, y docker-compose (ejemplo con django)