我想设置我的Nginx服务器以返回HTTP 50x状态代码的特定错误页面,并且我希望用户的直接请求(例如,http // mysite / internalerror)使该页面不可用.
为此,我正在使用Nginx的内部指令,但我必须遗漏一些东西,因为当我将该指令放在my / internalerror位置时,Nginx返回一个自定义404错误(这甚至不是我自己的404错误页面)页面崩溃.
总而言之,这里似乎发生了什么:
> GET / Home
> Nginx将查询传递给Python
>我正在模拟应用程序错误以获取502错误代码
> Nginx尝试从其error_page规则返回/ InternalError
>由于内部规则,它最终会回复到自定义404错误代码< - 为什么?文档说error_page指令不关注内部:http://wiki.nginx.org/HttpCoreModule#internal
这是来自Nginx.conf的摘录,其中有一些注释要指出:
error_page 404 /NotFound;
error_page 500 502 503 504 =500 /InternalError; # HTTP 500 Error page declaration
location / {
try_files /Maintenance.html $uri @pythonbackend;
}
location @pythonbackend {
include uwsgi_params;
uwsgi_pass unix:///tmp/uwsgi.sock;
}
location ~* \.(py|pyc)${ # This internal location works OK and returns my own 404 error page
internal;
}
location /__Maintenance.html { # This one also works fine
internal;
}
location ~* /internalerror { # This one doesn't work and returns Nginx's 404 error page when I trigger an error somewhere on my site
internal;
}
非常感谢您的帮助!!