Apache或Nginx为Django应用程序提供服务?

Bar*_*eyn 43 apache django mod-wsgi fastcgi nginx

我想部署一个Django Web应用程序,因此我需要选择一个Web服务器来提供Python文件.

我应该提一下,我的生产站点将位于一台服务器上,该服务器将托管数据库和Web服务器.作为动力选择,我的目标是将数据库移动到专用服务器等.

这是我的问题:

  1. 我应该使用一个或两个Web服务器吗?这个问题的背景是很多人建议使用NginX来提供静态媒体文件,使用Apache来服务Python,这会产生以下问题:
    1. 为什么我们不能只使用一台服务器.我知道Apache有时可能是一个野兽,因此我怀疑人们使用NginX来提供两个静态媒体文件和python文件.
    2. 如果使用一台服务器,那么更好的是Apache或NginX.我在Apache方面经验丰富,但我只听说过NginX的好消息.
  2. 使用FastCGI而不是mod_wsgi有什么好处?

提前谢谢了

小智 10

我应该使用一个或两个Web服务器吗?这个问题的背景是很多人建议使用NginX来提供静态媒体文件,使用Apache来服务Python,这会产生以下问题:为什么我们不能只使用一个服务器.我知道Apache有时可能是一个野兽,因此我怀疑人们使用NginX来提供两个静态媒体文件和python文件.

如果您当前没有其他站点已经以某种方式配置,或者您需要一些在各种服务器之间互斥的特定功能,我认为没有理由使用多个服务器.这只会增加不必要的复杂性和配置.

如果使用一台服务器,那么更好的是Apache或NginX.我在Apache方面经验丰富,但我只听说过NginX的好消息.

与所有"哪个更好"的问题一样,这通常是一个偏好问题.要获得具体答案,您可能需要提出更具体的问题.

如果您已经拥有特定服务器的经验并且您只想快速启动,那么我建议您暂时使用您已经知道的内容.您以后可以随时切换到另一个Web服务器.另一方面,这是了解替代品的好机会.


tl; dr:我会选择更容易配置和管理的东西.就个人而言,我会选择一个nginx和gunicorn,主要是因为它很容易,如果你应该卡住,有很多资源可用.

在你真正需要之前我不会太担心性能.所有的主要Web服务器都经过了测试和测试,因此它主要归结为应用程序和实际负载的要求,无论如何都需要进行监视,建模和测试以进行微调.

使用FastCGI而不是mod_wsgi有什么好处?

WSGI,CGI,FastCGI和mod_python之间在Python方面的差异和用途?


阅读的文章(一些旧的,一些新的);


mar*_*rue 2

问题 1) 您可以仅使用一台服务器,但对于提供静态媒体,lighttpd 或 nginx 等解决方案会更快。如果您确实只想使用一台服务器,我会坚持使用 Apache,它具有您需要的所有灵活性,并且是最常见的 Web 服务器。

问题 2) 取决于您的目的。您可以在此处找到信息:部署 Django(fastcgi、apache mod_wsgi、uwsgi、gunicorn)