首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mod_wsgi (守护进程)站点会将内容交给apache来为客户端提供服务吗?

mod_wsgi (守护进程)站点会将内容交给apache来为客户端提供服务吗?
EN

Stack Overflow用户
提问于 2009-04-02 16:36:20
回答 2查看 370关注 0票数 0

我已经在apache2.2的守护进程模式下使用mod_wsgi部署了Django。那么,在Django大量生产内容之后,它是将所有内容都交给apache,让它在优化后的辉煌中得到服务,还是Django在这个服务步骤中仍然以某种方式征税?

EN

回答 2

Stack Overflow用户

发布于 2009-04-02 16:44:42

WSGI接口声明(http://www.python.org/dev/peps/pep-0333/)您的WSGI应用程序(在本例中是Django)被调用,并且必须返回内容。

Django调用了你的视图函数。您的视图函数返回了呈现的模板。Django返回了渲染模板的结果。并且,它代表您调用了start_response callable。

在另一个步骤中,Apache调用了mod_wsgi。mod_wsgi (遵循WSGI规则)创建了这个环境,并将其交给了Django,以及Django可以使用的start_response可调用程序。

当Django调用start_response时,mod_wsgi有责任收集响应并对其进行处理。它将其传递给Apache,然后再将其提供给浏览器。

请注意,Django可能会在相当短的时间内完成。然而,Apache被困在将初始页面向下滴流到浏览器中。然后,浏览器开始询问.JS库、.CSS文件和所有这些图像。理想情况下,Apache会处理所有这些后续请求。

你可能会问“mod_wsgi会为我缓冲吗?”答案因版本而异。2.0之前的mod_wsgi可以为你积累一个缓冲区。mod_wsgi 2.0和更高版本没有缓冲,它假设应用程序能够缓冲,或者已经包含了用于缓冲的中间件。

http://code.google.com/p/modwsgi/wiki/ChangesInVersion0200

通常,您的Django模板在一个缓冲区中呈现,并在一块中传递给mod_wsgi,以便Apache应用输出过滤器并将其传递到浏览器。

票数 3
EN

Stack Overflow用户

发布于 2009-06-24 12:19:37

默认情况下,mod_wsgi 1.X中的FWIW允许Apache执行输出缓冲。这是因为WSGI规范有效地禁止了底层web服务器的输出缓冲。这是因为WSGI规范要求在每个字符串从迭代器/生成器返回之后,将数据刷新回浏览器。

换句话说,启用输出缓冲是可选的,更多的是一种实验。它被移除是因为WSGI禁止它,并且因为当有必要为某些Apache版本中的不正确行为实现一些工作时,它实际上会使mod_wsgi代码变得复杂。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/710535

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档