nginx维护错误面nginx error_page

  • 发表于
  • Linux

首先nginx错误页面我也是跳转到我的tomcat的服务器页面,所以我的tomcat关闭的时候就是维护服务器。怎么设置错误页面呢?当我们的tomcat关闭的时候,nginx的错误码是502,所以配置错误页面:

操作如下:

  1. 创建自己的404.html页面;
  2. 更改nginx.conf在http定义区域加入: fastcgi_intercept_errors on;
  3. 更改nginx.conf (或单独虚拟主机配置文件)中在server 区域加入: error_page 404 = /404.html; 或者 error_page 404 = http://www.xxx.com/404.html;
  4. 更改后重启nginx,,测试nginx.conf正确性: nginx -t && nginx reload
  5. 同样的502等错误方法相同。
error_page500 502 503 504 = /50x.html; 

error_page

语法:error_page code [ code… ] [ = | =answer-code ] uri | @named_location
默认值:no
使用字段:http, server, location, location 中的if字段
这个参数可以为错误代码指定相应的错误页面

error_page 404/404.html; 
error_page 502 503 504/50x.html; 
error_page 403http://example.com/forbidden.html; 
error_page 404= @fetch; 

同样,你也可以将原有的响应代码修改为另一个响应代码,例如:

error_page 404 =200 /empty.gif; 
error_page 404 =403 /forbidden.gif; 

另外你可以使用等号(=)指定你自己编写的错误处理程序返回相应的响应代码:

error_page 404=/404.php; 

如果在重定向时不需要改变URI,可以将错误页面重定向到一个命名的location字段中:

location / ( 
error_page 404 @fallback; 
) 

location @fallback ( 
proxy_pass http://backend; 
) 

注意事项:

  1. 必须要添加:fastcgi_intercept_errors on; 如果这个选项没有设置,即使创建了404.html和配置了error_page也没有效果。fastcgi_intercept_errors 语法: fastcgi_intercept_errors on|off 默认: fastcgi_intercept_errors off添加位置: http, server, location 默认情况下,nginx不支持自定义404错误页面,只有这个指令被设置为on,nginx才支持将404错误重定向。这里需要注意的是,并不是说设置了fastcgi_intercept_errors on,nginx就会将404错误重定向。在nginx中404错误重定向生效的前提是设置了fastcgi_intercept_errors on,并且正确的设置了error_page这个选项(包括语法和对应的404页面)
  2. 不要出于省事或者提高首页权重的目的将首页指定为404错误页面,也不要用其它方法跳转到首页。
  3. 自定义的404页面必须大于512字节,否则可能会出现IE默认的404页面。例如,假设自定义了404.html,大小只有11个字节(内容为:404错误)。

这个时候关闭tomcat就会跳转到维护页面,另外还要注意Apache也有自定义配置,任意开启一种就可以!