#Nginx 重写反向代理proxy_pass的错误页
问题背景
Nginx经常用来做反向代理,直接将请求转发给目标服务器,然后把响应数据返回给客户端。
但是,有时候目标服务器返回的错误信息中包含了敏感信息,直接发给用户端,可能会暴露目标服务器。
这要怎么处理呢?
解决方法
方法就是利用proxy_intercept_errors参数来捕获目标服务器返回的错误,返回自定义错误页给客户端。
1). 设置捕获错误
proxy_intercept_errors on;
proxy_intercept_errors设置为on以后,目标服务器返回的300以上的错误都会被捕获。
2). 设置错误页
error_page 404 /404.html;
location = /404.html {
root /usr/share/nginx/html;
internal;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
internal;
}