Apache + mod_wsgi vs nginx + gunicorn

问题描述 投票:23回答:3

我想部署一个django站点(它是github上的开源edx代码)。

我面临着使用之间的选择

  1. Apache与mod_wsgi
  2. nginx与gunicorn

我使用了mod_wsgi的Apache,它很酷,但我对第二个选项没有经验。

在速度和某种程度上易用性方面,哪一种更好?

注意:我需要在端口80和81上运行两个不同的django站点,并从两个不同的子域访问它们。

django apache nginx mod-wsgi gunicorn
3个回答
21
投票

Nginx是一个非常轻巧易用的解决方案,与gunicorn一起使用它可以让我们运行任何wsgi应用程序并轻松扩展它。 Nginx更擅长处理请求,因为它不像Apache那样为每个请求生成一个新进程。

我已经写了一个关于如何使用nginx为相关问题部署django的答案:

Deploying Django project with Gunicorn and nginx


0
投票

我对nginx和gunicorn有很好的经验。当我最终设置好所有设置并让它运行时,它们继续保持良好的工作状态。

对于nginx和gunicorn,它们是:

* nginx configuration files (/etc/nginx/sites-enabled/ and /etc/nginx/nginx.conf)
* gunicorn configuration files (/etc/init/gunicorn.conf and /etc/gunicorn.d/) 

我已经看过apache + mod_wsgi的教程,设置起来似乎要简单得多。


0
投票

好吧,你用Nginx获得的几毫秒不会对其他进程所花费的时间产生差异。 Nginx可能会节省RAM,但只有在少量RAM的服务器上才会有很大差异。对于大型网站上的特定用途,可能会有一些更显着的差异,但这将成为一个专家事件。

大多数人的真正区别可能在于学习的简易性。我发现Apache并不特别难以使用且文档很干净。然而,我发现的大多数Python教程都是关于将Nginx与Gunicorn一起使用。

如果您已经了解Apache,那么使用它可能会更直接,除非您想学习Nginx以提高您的简历。

© www.soinside.com 2019 - 2024. All rights reserved.