¿Por qué no usamos el servidor Django para alojar un sitio web de Django en producción?

El servidor de desarrollo de Django está integrado en el marco de Django, como la mayoría de los marcos modernos en cualquier idioma tiene un servidor de prueba incorporado (aunque no es aplicable para Spring) y se usa estrictamente durante el desarrollo solamente. Por qué ? Aquí están las razones.

  1. Está optimizado mejor para ejecutar su código durante el desarrollo.
  2. No es seguro No se ha hecho con la seguridad en mente. Muy fácil de hackear si se usa en producción.
  3. Las características como “recarga en caliente” (capacidad de recoger cambios en el código sin recargar manualmente el servidor) requieren mucha potencia de CPU y RAM . Tampoco es necesario en la producción.
  4. Carece de muchas características , multihilo por ejemplo.
  5. Rendimiento , no puede manejar varias solicitudes al mismo tiempo. Intente mantener presionada la tecla Ctrl + R en el navegador, puede ver errores como “tubería rota” en la consola de desarrollo.

Entonces, en producción, es posible que necesite un servidor web como Apache o Nginx , junto con un servidor WSGI como uWSGI , gunicorn , mod_WSGI (para apache), etc., hay algo de aprendizaje involucrado aquí para la configuración y todo, pero vale la pena.

PD: También vale la pena mirar Docker, que es la nueva palabra de moda en la implementación de aplicaciones web.

No es seguro ni lo suficientemente potente como para manejar muchas solicitudes o cargar en un momento dado.

Para obtener más información sobre los servidores Django, consulte este enlace

Comparación del servidor Django: servidor de desarrollo, Mod_WSGI, uWSGI y Gunicorn

El servidor django fue creado para desarrollarse NO para producción

El servidor de Django es:

  • Ineficiente
  • Inseguro
  • Lento

Lo mejor fue usar VPS + nginx + uwsgi como se muestra aquí: