uikyhtr 发表于 2017-2-7 10:55:53

nginx自定义500,502,504错误页面无法跳转

1、自定一个页面,这个页面是一个链接地址可以直接访问的。
以下是nginx的配置:
location / {
            proxy_pass http://tomcat_app108;
            #client_max_body_size 1000m;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            error_page502 503 504http://www.cbd.com;
            index   index.html;
      }
注:当出现50x的错误的时候,域名会发生变化,会跳转到这个http://www.cbd.com域名上去


2、自定义一个页面,当发生50x的错误的时候,域名不变
以下是nginx配置:
      location / {
            proxy_pass http://tomcat_app108;
            #client_max_body_size 1000m;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            error_page502 503 504/tips;
            index   tips.html index.html;
          location/tips {
               root/opt/www/test/;
                index   tips.html;
      }
注:当发生50x的错误的时候,会去寻找/tips的信息,然后匹配到下面location/tips这个location的内容,跟着会去到这个/opt/www/test/目录下寻找相关页面,这个目录下面有tips这个目录,tips目录下面有tips.html这个文件,这样一步一步就能找到自定义的错误页面了
比如域名是www.cbd.com,访问一下www.cbd.com/tips如果能访问到错误页面说明配置没有问题;

验证:当服务器端发生500,502,503错误时候,会自动跳转到www.cbd.com/tips

注意:若发生错误没有跳转,需要详细看一下一个参数:
proxy_intercept_errors on;
当上游服务器响应头回来后,可以根据响应状态码的值进行拦截错误处理,与error_page 指令相互结合。用在访问上游服务器出现错误的情况下。

以下是完整的配置:


      location / {
            proxy_pass http://tomcat_app108;
            #client_max_body_size 1000m;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;

            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_intercept_errors on;
            error_page502 503 504/tips;
            index   tips.html index.html;
       location/tips {
               root/opt/www/test/;
                index   tips.html;
      }

页: [1]
查看完整版本: nginx自定义500,502,504错误页面无法跳转