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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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_page  502 503 504  http://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_page  502 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_page  502 503 504  /tips;
            index   tips.html index.html;

          location  /tips {
               root  /opt/www/test/;
                index   tips.html;
        }


以上是关于nginx自定义500,502,504错误页面无法跳转的主要内容,如果未能解决你的问题,请参考以下文章

http的500,502,504错误

Nginx 500错误总结

Nginx 500错误总结

nginx 502错误和504错误

服务器错误码500 501 502 503 504 505 详解

Nginx出现502和504错误解决方法