如何生成用户定义的" 404页面未找到"在nginx?

时间:2014-06-05 06:49:34

标签: python django nginx gunicorn

我已经在我的nginx服务器上部署了一个带有gunicorn的示例django项目,我需要在用户输入错误的url时显示我自己的404 page not found html页面。我在我的nginx.conf文件中尝试了这样的事情/ p>

server {
listen localhost:8899;
root /home/mulagala/Desktop/projects/28-05-2014/mysite/mysite/templates
access_log  /var/log/nginx/example.log;
error_log /var/log/nginx/example.error.log;

location / {
    proxy_pass http://127.0.0.1:8060;
}

# redirect server error pages to the static page /40x.html
#
  error_page  404              /404.html;
  location  = /404.html {
    }

# redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
    }


location /static/ {
    autoindex on;
    alias /home/mulagala/Desktop/projects/28-05-2014/mysite/static/;
}
} 

但是当我输入错误的网址时,我仍然会收到django默认消息Page not found (404),并显示我的所有网址。我需要更改我的django项目中的任何内容或其他任何内容。我正在做什么错误。任何帮助将不胜感激

1 个答案:

答案 0 :(得分:1)

您不需要此error_page 404块,并确保您拥有proxy_intercept_errors off;。如果满足这两个条件,nginx将让应用程序(这里是Django)返回自己的404页面。

此配置文件应该没问题:

server {
    listen localhost:8899;
    root /home/mulagala/Desktop/projects/28-05-2014/mysite/;
    access_log /var/log/nginx/example.log;
    error_log /var/log/nginx/example.error.log;

    location / {
        proxy_pass http://127.0.0.1:8060;
    }

    location /static/ {
        autoindex on;
        alias /home/mulagala/Desktop/projects/28-05-2014/mysite/static/;
    }
}