nginx做反向代理时不想暴露404等其他错误,这里用到httpproxy模块的proxy_intercept_errors功能,语法如下


proxy_intercept_errors


语法:proxy_intercept_errors [ on|off ] 

默认值:proxy_intercept_errors off 

使用字段:http, server, location 

使nginx阻止HTTP应答代码为400或者更高的应答。

默认情况下被代理服务器的所有应答都将被传递。 

如果将其设置为on则nginx会将阻止的这部分代码在一个error_page指令处理,如果在这个error_page中没有匹配的处理方法,则被代理服务器传递的错误应答会按原样传递。


比较简单做法是,在nginx.conf的http中添加 proxy_intercept_errors on;

然后在server 添加


        error_page  404              /404.html;

        error_page   500 502 503 504  /50x.html;

        location = /50x.html {

            root   html;

        }


这样重新加载nginx服务就可以了,当然你也可以把错误页面定向到一个专门显示错误页面的站点中