2011-10-17 95 views
39

是否可以在Nginx中提供自定义“错误网关”错误页面?Nginx自定义错误网关页面

与定制404页面类似。

+0

尝试[这个答案](https://serverfault.com/a/194301)(适用于重启nginx的我在nginx/1.2.1上) –

回答

29

它与设置自定义404页面类似。这是我得到的。

#site-wide error pages 
error_page 404 /404.html; 
error_page 500 502 503 504 /500.html; 
+0

谢谢!我会尝试你的答案,然后回来更新线程 – deb

+2

这对我来说不起作用,我不知道新版本的nginx中的行为是否已经改变。我试过[这些稍微不同的说明](http://www.ruby-forum.com/topic/189334),并得到它的工作。 – BigglesZX

+1

确认。这是行不通的。这不应该是正确的答案。 – PKHunter

38

为了让您的自定义错误页面显示而不是通用的“错误网关”错误,必须有三个部分。

  1. 您必须创建一个名为类似“500.html”的html文件并将其放在根目录中。对于运行在Nginx后面的Rails,这意味着将其置于public/500.html。

  2. 您必须在您的配置文件中的一行指向至少502错误是500.html页面是这样的:

    error_page 502 /500.html; 
    
  3. 你必须有一个定位块在/500.html你的配置文件。如果您的根目录已经定义,则此块可以为空。但该块必须存在。

    location /500.html{ 
    } 
    
+2

谢谢。这有助于。 – PKHunter

+2

这应该是公认的答案,我可以证实它适用于我,我可以按照上面的确切步骤进行自定义502错误响应。目前接受的答案是误导性的,不起作用。 –

+1

甜。如果您希望错误页面位于不同的位置,您也可以在位置块中指定“root”。 –

2

是有可能

键入这在终端

cd /etc/nginx 

sudo nano nginx.conf 

,并在HTTP下加入这些行

error_page 500 Path_to_your_custom_error_page; 
    error_page 503 Path_to_your_custom_error_page; 
    error_page 504 Path_to_your_custom_error_page; 

现在,通过键入以下命令重新启动nginx的:

sudo service nginx restart 

宾果游戏,现在你可以使用Debian(9.3拉伸实际上)看到自定义错误消息在网关错误

0

我没有以下步骤:

  • 创建/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; 
    } 
} 
  • 然后使用service nginx restart