【问题标题】:Disable caching in Apache 2 for Python Development在 Apache 2 中禁用缓存以进行 Python 开发
【发布时间】:2012-09-14 21:18:58
【问题描述】:

在 Apache 2 上使用 mod-python mod-wsgi 在 Python 中进行开发。

一切运行良好,但如果我对我的 PY 文件进行任何更改,更改不会传播,直到我重新启动 Apache /etc/init.d/apache2 restart

这很烦人,因为我每次在开发中都无法 SSH 并重新启动 Apache 服务。

有什么方法可以禁用 Apache 缓存?

谢谢。

【问题讨论】:

    标签: python apache caching wsgi


    【解决方案1】:

    从性能的角度来看,这是一个非常糟糕的设置,但我在 http.conf 中所做的是将MaxRequestsPerChild 设置为 1。这具有每个 apache 进程在死前处理单个请求的效果。它会扼杀吞吐量(因此不要使用该设置运行基准测试,或在生产站点上使用它),但它具有为每个请求提供 python 一个干净的环境的效果。

    【讨论】:

    • 因为这样做是一个非常糟糕的主意,除非您别无选择,否则我不会建议您这样做。即便如此,MaxRequestsPerChild 仅适用于 mod_wsgi 嵌入模式,而不适用于 mod_wsgi 守护进程模式。如需正确解释,请阅读code.google.com/p/modwsgi/wiki/ReloadingSourceCode
    【解决方案2】:

    如果你正在使用 mod_wsgi,你可以使用 WSGIScriptReloading 指令来使你能够发出 touch your.wsgi 命令并导致 WSGI 重新加载 interpreter 进程。

    【讨论】:

    • 答案有点误导。无论如何,WSGIScriptReloading 指令默认是开启的,所以永远不需要设置它。它的行为方式取决于您使用的 mod_wsgi 模式。它只会像你说的那样在守护进程模式下运行,即使那样它也不是严格重新加载解释器,而是终止进程并重新启动它。它们不是一回事,因为在技术上可以销毁解释器并在同一过程中重新初始化它。如需正确解释,请阅读code.google.com/p/modwsgi/wiki/ReloadingSourceCode
    猜你喜欢
    • 1970-01-01
    • 2015-10-13
    • 1970-01-01
    • 2012-09-22
    • 2011-03-11
    • 2013-06-02
    • 2012-06-06
    • 2018-10-05
    • 2017-09-30
    相关资源
    最近更新 更多