Hola,
Gracias por A2A
La implementación de un proyecto django para el entorno de producción requiere tres cosas:
- ¿Cuál es la mejor manera de extraer información de varias tablas de base de datos?
- Cómo construir mi propio reproductor de video como YouTube
- ¿Dónde puedo arreglar mi sitio web?
- ¿Cuál es la tecnología detrás de mydeco.com?
- En MVC, ¿qué se conoce como lógica empresarial?
- nginx [motor x] es un servidor HTTP y proxy inverso.
- contenedor del servidor de aplicaciones uWSGI
- Su proyecto django (con suerte ejecutándose)
Aunque es una guía bastante genérica, la encuentro más útil, ya que ayuda a comenzar a trabajar con el mínimo esfuerzo: cómo servir aplicaciones de Django con uWSGI y Nginx en Ubuntu 14.04.
Una descripción básica de lo que pretendemos lograr en el lado del servidor es algo como esto:
Solicitud HTTP Nginx uWSGI Django
La solicitud http del navegador será manejada primero por nuestro increíblemente poderoso NGINX. Nginx luego resolverá esta solicitud en función del nombre de dominio que vino como parte de la solicitud y la pasará al controlador apropiado basado en la configuración.
Ahora viene la parte divertida, simplemente podemos establecer un socket web local en 127.0.0.1:8001(que se puede iniciar con ‘./manage.py runserver 127.0.0.1:8001’ duh!) Y luego decirle a django que simplemente pase todas las solicitudes en ese socket ya que django se ejecutará en ese socket. PERO, NO HAGAS ESTO! Dado que el servidor de prueba que inicia django solo se ejecutará mientras el código sea estable y se ejecute, pero habrá casos frecuentes en los que este servidor simplemente se bloqueará en tiempo de ejecución en un encuentro de excepción (¡No queremos eso en producción!). Entonces, para mantener este servidor en funcionamiento, incluso en los malos tiempos (todos los tenemos) necesitamos un contenedor de servidor de aplicaciones que mantenga explícitamente django en funcionamiento y, por lo tanto, necesitamos uWSGI para eso. Entonces, en lugar de apuntar Nginx directamente a Django, lo apuntará a un socket UNIX (en lugar de un socket web) creado por uWSGI que interactuará aún más con django, ¡por lo tanto, la ruta anterior es clara!
Entonces, eso es todo en la amplia visión general. ¡A la guía!
Buena suerte !