我想设置我的nginx服务器返回HTTP 50x状态代码上的特定错误页面,我希望这个页面不能被用户的直接请求(例如http // mysite / internalerror)所不可用。
为此,我使用nginx的internal
指令,但我必须丢失一些东西,因为当我把这个指令放在我的/internalerror
位置时,nginx返回一个自定义的404错误(甚至不是我自己的404错误页面)页面崩溃。
所以,总结一下,看来会发生什么:
error_page
规则返回/ InternalError internal
规则,它最终失败回到自定义404错误代码< – 为什么? 该文件说error_page
指令不关心internal
: http : error_page
下面是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; }
非常感谢您的帮助!!
对于/ internalerror位置使用“〜*”没有多less意义,简单的位置可以。
你得到404因为/ InternalError文件丢失。 你打算从uwsgi后端提出这样的请求吗?