【问题标题】:Occasional Internal Server Errors using Django with mod_wsgi and Apache使用带有 mod_wsgi 和 Apache 的 Django 偶尔出现内部服务器错误
【发布时间】:2012-02-16 17:48:15
【问题描述】:

我们使用 Django + mod_wsgi + Apache 设置。

有时,当我们进行站点更新/更改后端 Python 代码时,站点用户会遇到内部服务器错误页面,这些页面似乎是由 Apache 提供的,而不是由 Django 提供的(至少它们是非常丑陋的,不是漂亮的)。虽然我认为它们似乎确实会生成错误报告(通过电子邮件),但它们似乎并没有出现在我们的 500 服务器错误模板上。

我想深入了解为什么会发生这种情况。通常错误会导致 Django 提供的(并且样式精美的)500 错误页面,但只是偶尔我们会看到丑陋的内部服务器错误页面。

有谁知道为什么会发生这种情况以及我可以在这里检查/测试/发布什么来阻止这种情况发生?非常感谢您的帮助,谢谢!

【问题讨论】:

    标签: django apache mod-wsgi


    【解决方案1】:

    如果 Apache 向您显示 500 页面,则表明 Django 在呈现 500 页面时抛出了错误。例如,500.html 模板上可能有一个 Django 无法呈现的模板标签。

    您查看过 Apache 错误日志吗?对于 Debian 上的 Apache2,默认情况下它们存储在 /var/log/apache2/ 中。您的操作系统可能会有所不同。

    【讨论】:

    • 谢谢。基本模板中包含一些技术上的标签,包括 {% load analytics %} 和 {% if user.is_authenticated %}` - 以及更多。我猜这些是罪魁祸首。将尝试删除它们,看看是否会再次出现。谢谢!
    【解决方案2】:

    我知道这种行为,在 Centos 5.3 和 Python 2.5 上也有同样的问题。 在我安装了 Python 2.7.2 并针对它编译了最新的 mod_wsgi(我认为是 3.3 版)之后,这些错误就消失了。就我所记得的内存分配而言,问题是 Python 2.5 中的一个错误。

    使用 CentOS 时要小心,因为您无法更新 Python 2.4,您必须并行安装版本。更新 Python 会破坏 CentOS 系统的“yum”等功能。

    【讨论】:

    • 我目前正在运行 Python 2.6 - 你知道那是否也有错误吗?如果是这样,我也会试试这个。感谢您的帮助。
    • 不,我不知道2.6是否也有这个错误,但无论如何更新python和mod_wsgi也没有什么坏处。
    猜你喜欢
    • 2012-08-19
    • 2017-07-15
    • 2017-09-05
    • 2018-06-07
    • 1970-01-01
    • 2015-06-09
    • 2017-07-09
    • 2017-08-25
    • 1970-01-01
    相关资源
    最近更新 更多