使用Nginx自定义错误网关页面

deb*_*deb 45 nginx

是否可以在Nginx中提供自定义的"Bad Gateway"错误页面?

与自定义404页面类似.

小智 44

必须有三个部分才能显示自定义错误页面而不是通用的"错误网关"错误.

  1. 您必须创建一个名为"500.html"的html文件并将其放在根目录中.在Rails在Nginx后面运行的情况下,这意味着将它放在public/500.html上.

  2. 您的配置文件中必须有一行指向该500.html页面的至少502个错误,如下所示:

    error_page 502 /500.html;
    
    Run Code Online (Sandbox Code Playgroud)
  3. 您的配置文件中必须有/500.html的位置块.如果已定义根,则此块可以为空.但是块必须存在.

    location /500.html{
    }
    
    Run Code Online (Sandbox Code Playgroud)

  • 谢谢.这有帮助. (2认同)
  • 这应该是接受的答案,我可以确认它对我有用,我可以按照上面的确切步骤进行自定义502错误响应.目前接受的答案是误导性的,不起作用. (2认同)
  • 甜。如果您希望错误页面位于其他位置,也可以在位置块中指定“ root”。 (2认同)

Lar*_*nal 32

它类似于设置自定义404页面.这就是我所拥有的.

#site-wide error pages
error_page 404 /404.html;
error_page 500 502 503 504 /500.html;
Run Code Online (Sandbox Code Playgroud)

  • 这对我不起作用,我想知道在新版本的nginx中行为是否已经改变.我尝试了[这些稍微不同的说明](http://www.ruby-forum.com/topic/189334)并使其正常工作. (3认同)
  • 证实.这不起作用.这不应该是正确的答案. (2认同)

vch*_*izz 11

使用 debian(实际上是 9.3 拉伸)我做了以下步骤:

  • /var/www/html/502.html使用 502 错误页面的内容创建

  • 编辑 /etc/nginx/sites-enabled/mywebsite.conf

所以它看起来像这样:

server {
    listen 80; listen [::]:80;
    server_name www.mywebsite.com;

    error_page 502 /502.html;
    location /502.html {
        root /var/www/html;
    }
}
Run Code Online (Sandbox Code Playgroud)
  • 然后使用重新启动nginx service nginx restart

  • 在这个问题的所有答案中,这是我发现唯一既准确又_完整_的答案。其他答案中遗漏了太多细节,我无法让它们发挥作用。对于熟悉 Nginx 配置的人来说,这些细节没什么意义,但我不是。这个答案给出了我实际实现 OP 目标所需要做的精确事情。 (4认同)