从Nginx提供静态内容但在Django中处理错误页面

时间:2017-02-17 14:44:04

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

我的静态和媒体文件由Nginx提供,其他请求由Django提供。

我有一个由Django提供的自定义404页面。由于Nginx正在处理静态内容,因此对于抛出404的/ static / *的任何请求也由Nginx处理。我可以在Nginx中设置静态自定义404页面,但我希望Django能够处理任何404。

是否可以从Nginx提供静态内容,但在404的情况下,请求会转发给Django?

1 个答案:

答案 0 :(得分:1)

假设您已经定义了django代理传递

upstream django_server {
    server 127.0.0.1:8000;
}

然后你可以这样做

location /static/ {
     try_files $uri @django;
     ....
}
location @django { 
    proxy_pass django_server;
}