¿Necesitaría uWSGI para una aplicación o Nginix será suficiente?

De acuerdo con documentos oficiales uWSGI: Un server web se enfrenta al mundo exterior. Puede servir files (HTML, imágenes, CSS, etc) directamente desde el sistema de files. Sin embargo, no puede hablar directamente con las aplicaciones de Django; necesita algo que va a ejecutar la aplicación, alimentar a las requestes de los clientes web (como los browseres) y respuestas de retorno.

Una interfaz de puerta de enlace de server Web – WSGI – hace este trabajo. WSGI es un estándar de Python.uWSGI es una implementación WSGI.

¿Significa que uWSGI es una necesidad si quiero implementar una aplicación Django en el server web?

Respuesta corta: necesitas algún tipo de server django separado, sí.

Respuesta larga: nginx solo puede servir files estáticos. Puede leer cualquier file en su server y enviarlo a través de HTTP, pero eso es todo. No habla PHP, Python, Java, … por sí mismo. Si apuntas a nginx a un file python, solo lo tratará como un file de text y mostrará el código fuente, porque no sabe qué más hacer con él.

Los sitios web dynamics funcionan de la siguiente manera:

  1. request llega al server web
  2. el server web reenvía la request a un server de aplicaciones PHP / Python / etc
  3. server de aplicaciones genera HTML de la request
  4. server de aplicaciones envía HTML al server web
  5. server web sirve HTML

Para que el punto 2 funcione, debe "enseñar" a nginx a tratar ciertos files / urls de manera diferente. Usted básicamente le dice que todo lo que termina en. Php debe ser reenviado al server php. Lo mismo ocurre con las aplicaciones de django. Debe indicarle a nginx que envíe ciertos patrones de URL a un server django, que ejecuta los scrpts de python para generar el HTML.

uWSGI es un server Django, pero hay varios.