主要是记录踩过的一个坑。。。

nginx要自定义404和500的页面,但是error_page 配置没有生效,没有正常跳转。

error_page  404  /404.html;
error_page  500 503 502  /500.html;
location = /500.html {    
            root html;
        }
location = /404.html {
            root html;
        }

这是因为我们的静态资源在上游服务器上,而不是当前nginx直接提供。

 

nginx proxy 启用自定义错误页面:

语法:proxy_intercept_errors on | off;

默认值:

proxy_intercept_errors off;

上下文:http, server, location

当被代理的后端服务器的响应状态码大于等于300时,决定是否直接将响应发送给客户端,亦或将响应转发给nginx由error_page指令来处理。

 proxy_intercept_errors 为on 表示 nginx按照原response code 输出,后端是404就是404。这个变量开启后,我们才能自定义错误页面。

proxy_intercept_errors on;

修改后测试通过