在 nginx 中重用 django 错误页面

在 nginx 中重用 django 错误页面

我想避免使用 django 和 nginx 时出现不一致的错误页面。如果找不到静态文件,则显示默认的 nginx 错误页面而不是 django 错误页面。我认为将每个失败的请求重定向到 gunicorn 服务器并最终显示 django 错误页面会导致性能不佳。我在哪里可以找到默认的 django 错误页面以及如何让 nginx 使用它们?

答案1

Django 可以使用多种方法来准备和生成 404 页面。据我所知,Django 甚至可以在 404 错误期间呈现一些模板。

如果您想要传递与 Django 发送给您的相同的页面,您可以:

  • 将每个失败的请求发送给 gunicorn(这可能会影响你的性能)。

  • 或者生成一个失败的页面,将其以静态形式存储在某处(例如curl -o /var/www/errors/404.html http://your.site.com/404 ),并使用提供适当的静态页面

    location /404.html {
       alias /var/www/errors/404.html
    }
    error_page 404             /404.html;
    

第一种方式可以让你提供自定义的错误页面(针对缺失的 URI)。虽然后一种方式会非常快速地提供错误页面,但所有缺失的页面和 URI 的错误页面都是相同的。

这个选择由你。

相关内容