首页 / 知识
关于python:Django的Cleanest和Fastest服务器设置
2023-04-13 02:47:00

Cleanest & Fastest server setup for Django我即将部署一个由Django提供支持的中型网站。我有一个专用的Ubuntu服务器。 我真的很困惑使用哪些服务器软件。所以我心想:为什么不问stackoverflow。 我正在寻找的是:
我在Apache,nginx和lighty上听说过mod_wsgi和mod_python。哪些是这些的利弊,我错过了某人? @Barry:不知怎的,我觉得Apache对我来说很臃肿。替代方案呢? @BrianLy:好的,我会再看一下mod_wsgi。但是,如果我提供轻微的静态文件,为什么我需要Apache?我还设法用轻松的方式为django应用程序服务。反正这样糟糕吗?对不起因为这么傻:-) 更新:lighty和nginx怎么样 - 当这些是完美的选择时,哪些是用例? 由于我正在寻找更深入的答案,我决定自己深入研究这个问题。如果我误解了什么,请告诉我。 一些一般建议是使用单独的网络服务器来处理媒体。通过单独,我的意思是一个没有运行Django的网络服务器。这个服务器可以是例如:
然后,对于Django,你可以走不同的路径。你可以:
或者你可以:
另一件事,由于Python的限制,您的服务器应该以分叉模式运行,而不是线程化。 所以这是我目前的研究,但我想要更多的意见和经验。 我正在使用切诺基。 根据他们的基准(与它们的盐粒),它比Lighttpd和nginx更好地处理负载......但这不是我使用它的原因。
我使用它是因为如果你键入 至于django,我将它作为线程SCGI进程运行。效果很好。切诺基也可以保持运转。再次,非常好的功能。 目前的Ubuntu repo版本很老,所以我建议你使用他们的PPA。祝好运。 正如@Barry所说,文档使用mod_python。我没有使用Ubuntu作为服务器,但在Solaris上使用mod_wsgi有很好的经验。您可以在mod_wsgi站点上找到mod_wsgi和Django的文档。 快速审查您的要求:
官方推荐的部署django项目的方法是使用mod_python和apache。这在文档中描述。这方面的主要优点是它是最好的文档,最受支持和最常见的部署方式。可以说它可能不是最快的。
在我看来,最好/最快的堆栈是varnish-nginx-uwsgi-django。 保持简单:Django推荐Apache和mod_wsgi(或mod_python)。如果提供媒体文件是您服务的重要组成部分,请考虑使用Amazon S3或Rackspace CloudFiles。 我也很难理解所有选项。在这篇博文中,我发现mod_wsgi与mod_python相比有一些好处。 小型VPS上的多个低流量站点使RAM消耗成为主要问题,而mod_python似乎是一个不好的选择。使用lighttpd和FastCGI,我设法将简单的Django站点的最小内存使用量降低到58MiB虚拟和6.5MiB驻留(在重新启动并提供单个非RAM大量请求之后)。 我注意到在Debian Etch上从Python 2.4升级到2.5会使Python进程的最小内存占用量增加几个百分点。另一方面,2.5更好的内存管理可能会对长时间运行的流程产生更大的相反影响。 我正在使用mod_wsgi的nginx(从Sid获取0.6.32)。它运作得很好,但我不能说它是否比替代品更好,因为我从来没有尝试过。 Nginx内置了memcached支持,它可以与Django缓存中间件互操作(我实际上并没有使用它,而是使用python-memcache手动填充缓存并在进行更改时使其无效),因此缓存命中完全绕过Django (我的开发机器每秒可以提供大约3000个请求)。
警告:nginx' 我认为最好的配置并不是那么出名。但这是: 基于python的Web服务器的两个最快速的解决方案是:
您需要查看谷歌以找到django的当前最佳配置(仍处于开发阶段)。 我有使用切诺基的警告。 当您对Django进行更改时,Cherokee会维护OLD进程,而不是杀死它并开始新进程。 在Apache上我强烈推荐这篇文章。 http://www.djangofoo.com/17/django-mod_wsgi-deploy-exampl 它易于设置,易于删除或重置后重置。 只需输入终端即可
并立即看到变化。
有很多种方法可以做到这一点。出于这个原因,我建议仔细阅读与DjangoAdvent.com上的部署过程相关的文章: 问候 我们在所有Django部署中使用nginx和FastCGI。这主要是因为我们通常在Slicehost上部署,并且不想将所有内存捐赠给Apache。我想这将是我们的"用例"。 关于文档主要是俄语的评论 - 我发现英语维基上的大部分信息非常有用和准确。这个站点也有Django的示例配置,您可以从中调整自己的nginx配置。 如果你正在使用lighthttpd,你也可以使用FastCGI来提供Django服务。我不确定速度与mod_wsgi的比较,但是如果内存正确,你可以获得mod_wsgi带来的一些好处,而mod_python是你无法获得的。主要的一点是,您可以为每个应用程序提供自己的进程(这对于保持不同应用程序的内存分离以及利用多核计算机非常有用。 编辑:只是为了添加关于nginix的更新,如果内存再次正常,nginix使用"greenlets"来处理并发。这意味着您可能需要更加小心,以确保一个应用程序不会占用服务器的所有时间。 |
最新内容
相关内容
python支持r语言吗?
python支持r语言吗?,代码,名称,培训,官网,第一,语言,对象,字符串,方法,后缀,python中可以支持r语言。python提供了一个模块rpy2,可以较好地完python能做网站吗?
python能做网站吗?,网站,工程,认证,培训,系统,服务,框架,页面,初始化,性功能,python可以做网站,Python有很多优秀的网站框架,可以非常快速的建做网站用php还是python方便
做网站用php还是python方便,网站,培训,语法,轮子,相比之下,模版,根本,实际,成本,以上,单纯说做网站,显然是php更适合,php是专为web而生,而Pythonpython建设网站
python建设网站,系统,网络,培训,认证,时间,框架,组件,模块,功能,模板,python适合建网站吗python的web应用框架可谓非常极其之多,远非其他语言python支持多继承吗
python支持多继承吗,培训,代码,不了,上边,函数,属性,例子,父亲,定义,母亲,python多继承单继承有时候可能满足不了我们所需的所以我们就会遇到python是否支持字符串
python是否支持字符串,培训,数据,字符串,字符,引号,中文,内容,也就是,源程序,比如说,python要求,字符串必须使用引号括起来,可以使用单引号或者python支持哪些数据类型
python支持哪些数据类型,数字,标准,指数,培训,系统,浮点,布尔,表示,类型,个位,python基本数据类型一般分为:数字、字符串、列表、元组、字典、python不支持next方法吗
python不支持next方法吗,异常,培训,项目,方法,对象,元素,参数,函数,语法,文件,Python3中的File对象不支持next()方法。Python3有一个内置函数python如何开发网站
python如何开发网站,网站,技术,培训,数字,数据,商业,价值,网络,人工智能,代码,Python是一门简单易学的编程语言,代码简洁优美,最近,随着人工智能python静态web服务器如何实现
python静态web服务器如何实现,数据,培训,服务,代码,时间,服务器,静态,报文,浏览器,消息,python静态web服务器如何实现的方法:1、编写TCP服务器关于javascript:Adobe AIR:处理服务
关于javascript:Adobe AIR:处理服务器中的JSON对象,关于javascript:Adobe AIR:处理服务器中的JSON对象,对象,远程服务器,调用,检索,Adobe如何从部署在64位服务器上的SSIS包
如何从部署在64位服务器上的SSIS包访问Excel数据源?,如何从部署在64位服务器上的SSIS包访问Excel数据源?,文件,数据,传输,第三方,How d