使用 Django 与 mod_wsgi 和 Apache 时偶尔出现内部服务器错误
我们使用 Django + mod_wsgi + Apache 进行设置。
有时,当我们进行站点更新/更改后端 Python 代码时,站点用户会遇到内部服务器错误页面,这些页面似乎是由 Apache 提供的,而不是由 Django 提供的(至少它们是非常丑陋的页面,而不是漂亮的页面) )。他们似乎确实生成了错误报告(通过电子邮件),但我认为,他们只是似乎没有出现在我们的 500 服务器错误模板上。
我想弄清楚为什么会发生这种情况。通常,错误会导致 Django 提供的(且样式精美)500 错误页面,但偶尔我们会看到丑陋的内部服务器错误页面。
有谁知道为什么会发生这种情况以及我可以在此处检查/测试/发布什么来阻止这种情况发生?非常感谢您的帮助,谢谢!
We are set up using Django + mod_wsgi + Apache.
Cccasionally, whilst we are doing site updates/changing the back-end Python code, site users run into Internal Server Error pages that appear to be served by Apache, not by Django (at least they are the horribly ugly ones, not the nice ones). They do seem to generate error reports though (via email) I think, they just don't seem to land on our 500 server error template.
I'd like to get to the bottom of why this is happening. Normally errors result in the Django-served (and nicely-styled) 500 error page, but just occasionally we see the ugly Internal Server Error page instead.
Does anyone have any idea why this is happening and what I can check/test/post here to stop this happening? Help really appreciated, thank you!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
如果 Apache 向您显示 500 页面,则表明 Django 在呈现 500 页面时抛出了错误。例如,500.html 模板上可能存在 Django 无法呈现的模板标记。
您查看过 Apache 错误日志吗?对于 Debian 上的 Apache2,它们默认存储在
/var/log/apache2/
中。您的操作系统可能有所不同。If Apache is showing you the 500 page, that suggests that Django threw an error while rendering the 500 page. For example, there could be a template tag on the 500.html template that Django was unable to render.
Have you looked in your Apache error logs? For Apache2 On Debian they are stored in
/var/log/apache2/
by default. Your operating system may vary.我知道这种行为,在 Centos 5.3 和 Python 2.5 上也有同样的问题。
在我安装了 Python 2.7.2 并编译了最新的 mod_wsgi (我认为是版本 3.3)后,这些错误就消失了。据我所知,这个问题是 Python 2.5 中关于内存分配的一个错误。
使用 CentOS 时要小心,因为你无法更新 Python 2.4,你必须并行安装版本。更新 Python 将破坏 CentOS 系统功能,例如“yum”。
I know this behavior, had the same problem on Centos 5.3 with Python 2.5.
After I installed Python 2.7.2 and compiled the latest mod_wsgi (I think it was version 3.3) against it, those errors vanished. The problem is a bug in Python 2.5 as far as I remember in regards to memory allocation.
Be careful when using CentOS, as you can not update Python 2.4, youll have to install versions parallel. Updating Python will break CentOS system features like "yum".