Cómo ejecutar mi aplicación Django automáticamente en el servidor de producción

Construí una aplicación en mi máquina local con Python y Django. Está funcionando bien. Ahora, me gustaría automatizar el proceso para iniciar mi aplicación Django en un servidor de producción.

¿Qué tengo que hacer para lograr eso?

La documentación de Django no recomienda utilizar el servidor incorporado de Django en la producción.

NO USE ESTE SERVIDOR EN UN AJUSTE DE PRODUCCIÓN. No ha pasado por auditorías de seguridad o pruebas de rendimiento. (Y así es como se mantendrá. Estamos en el negocio de crear marcos web, no servidores web, por lo que mejorar este servidor para poder manejar un entorno de producción está fuera del scope de Django).

Se recomienda usar gunicorn o uWSGI para iniciar su aplicación WSGI:
– Cómo usar Django con Gunicorn
– Cómo usar Django con uWSGI

Otra buena práctica es usar supervisord para iniciar el proceso. Luego , si muere o muere por algún motivo, supervisord reiniciará este proceso .

Y para finalizar, use nginx o apache como servidor proxy, que son servidores fuertes que pueden manejar el cargo. La mayoría de los tutoriales o documentaciones recomiendan utilizar nginx porque es un servidor HTTP de alto rendimiento.

NGINX es un servidor HTTP de código abierto, alto rendimiento y proxy inverso, así como un servidor proxy IMAP / POP3. NGINX es conocido por su alto rendimiento, estabilidad, rico conjunto de características, configuración simple y bajo consumo de recursos.

Marque esto para saber cómo configurarlos:
– Desplegando Gunicorn con nginx
– Implementando uWSGI con nginx

También antes de implementar su aplicación Django, lea esta lista de verificación para asegurarse de que todo esté bien configurado: Django – Lista de verificación de implementación

Con esta architecture y herramientas, podrá iniciar su proceso gunicorn con un simple comando de supervisord . Eso es todo. Entonces gunicorn lanzará su aplicación WSGI.