【发布时间】:2012-04-02 15:22:36
【问题描述】:
我有一个服务器 (nginx),它将一些 url 路由到静态目录,将其他的路由到 web.py wsgi 应用程序。服务器的配置还定义了一个 404 页面,当有人试图访问静态目录中不存在的文件时会显示该页面。
但是,有时用户会访问一个 nginx 传递给 python 的 url,然后我才意识到它应该是 404。此时 web.py 可以返回自定义错误页面以及正确的状态码;问题是我希望它返回与服务器对未发送到 python 的页面所做的相同的 404 页面。目前python是手动读取打印404.html文件,但是这样看起来效率很低。
那么,python有没有办法告诉服务器显示自己的404页面呢?
这是我当前的 nginx.conf,已删除注释行。
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name light.info;
root /www/example.com/html;
index index.html;
location /s/ {}
location /error/ {}
location / {
fastcgi_pass 127.0.0.1:9001;
fastcgi_param REQUEST_URI $request_uri;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param REMOTE_ADDR $remote_addr;
}
error_page 404 /error/404.html;
error_page 403 /error/403.html;
error_page 500 502 503 504 /error/50x.html;
}
}
【问题讨论】:
标签: python nginx http-status-code-404 wsgi web.py