我需要uWSGI的应用程序或Nginix将足够?

根据官方uWSGI文档:networking服务器面向外部世界。 它可以直接从文件系统提供文件(HTML,图像,CSS等)。 但是,它不能直接与Django应用程序进行对话; 它需要运行应用程序的东西,从Web客户端(如浏览器)提供请求并返回响应。

Web服务器网关接口 – WSGI – 完成这项工作。 WSGI是一个Python标准。uWSGI是一个WSGI实现。

这是否意味着如果我想在Web服务器上部署一个Django应用程序,uWSGI是必须的?

简短的回答:你需要某种forms的django服务器,是的。

长的答案:nginx本身只能提供静态文件。 它可以读取您的服务器上的任何文件,并通过HTTP发送出去,但就是这样。 它本身不会说PHP,Python,Java ……。 如果你将nginx指向一个python文件,它会把它作为一个文本文件并显示源代码,因为它不知道如何处理它。

dynamic网站是这样工作的:

  1. 请求到达Web服务器
  2. Web服务器将请求转发给PHP / Python / etc应用程序服务器
  3. 应用服务器从请求生成HTML
  4. 应用服务器将HTML发送到Web服务器
  5. networking服务器提供HTML

对于第2点的工作,你需要“教”Nginx来对待某些文件/ URL的不同。 你基本上告诉它,以.php结尾的所有内容应该被转发到php服务器。 Django应用程序也是如此。 您需要告诉nginx将某些URL模式转发到django服务器,然后运行python scrpts来生成HTML。

uWSGI是一个Django服务器,但有多个。