django on nginx& apache:在哪里处理404& 500错误?

时间:2010-09-24 17:41:49

标签: django apache nginx http-status-code-404

我知道django中有404错误处理。 但是将该配置放在nginx中会更好吗?

这个ST线程有解决方案。 - http://stackoverflow.com/questions/1024199/nginx-customizing-404-page

这是每个人在使用nginx时如何处理它? 我创建了自己的404.html& 500.html在网站主题中,想要显示它们。

3 个答案:

答案 0 :(得分:3)

您没有提到为什么要将这些页面放在Nginx服务器中的任何原因。我建议将其保留在您的网站的其余部分,即Django服务器上。将站点的一部分移动到Nginx服务器是解决可伸缩性问题的好主意,但会使部署变得复杂。我当然希望您没有看到网站流量的很大一部分流向您的错误页面!

答案 1 :(得分:3)

我不知道如何配置404& django中有500个错误。 感谢帮助我的“namnatulco”。

以下是步骤:

  1. 创建2页404.html& 500.html
  2. 将它们放入模块模板文件夹
  3. 在您的模块urls.conf中,输入以下两行:

    handler404 = "myproject.mymodule.views.redirect_page_not_found"   
    handler500 = "myproject.mymodule.views.redirect_500_error"
    
  4. 在您的视图中,定义函数

    def redirect_page_not_found(request):
      return render_to_response('logreg/404.html', {}, context_instance=RequestContext(request));     
    def redirect_500_error(request):
      return render_to_response('logreg/500.html', {}, context_instance=RequestContext(request));     
    
  5. 通过提供一些不正确的网址来测试它,例如 - www.mydomain.com/aaaaaaaaaaaaaaaa

  6. 要在您的render_to_response视图中测试500错误,请提供错误的网址。
  7. 就是这样。你应该被设置。

答案 2 :(得分:1)

我建议使用in-Django 404/500处理程序。您可以采用与网站其他部分一致的网页样式提供有意义的备用导航建议。

确保返回正在讨论错误的页面,但运行200返回状态 - 人类会理解这是一个错误,但程序化访问不会。我在这里避免说“搜索引擎”,但事实是他们可能代表98%以上的非人类访问者。有关详细信息,请参阅HttpResponse subclasses