利用Nginx和前端框架友好通知用户系统正在更新
|
admin
2025年11月9日 23:54
本文热度 136
|
背景
B/S前后端分离架构下的系统每次需要进行更新都需要先停止服务器,然而用户并不知道更新,看到各种报错信息以为是服务器崩了,造成对系统可靠性的误解。
怎么友好提示用户服务器正在更新,请稍后再试?
在前端响应拦截器里做策略
可实现消息提示或者跳转到更新维护页面
- • 前端框架中一般会有个统一处理请求和响应的中间件封装,例如在若依中就是
src\utils\request.js
// 响应拦截器添加如下
service.interceptors.response.use(res => {
if (code === 502) {
// 后端正在进行更新,跳转到友好页面
Message({
message: '系统正在维护,请稍后访问',
type: 'error'
})
return Promise.reject(new Error(msg))
}
})
- •
为什么状态码是502?因为博主用的是Nginx反向代理到后端服务器 - • 502 Bad Gateway:这是最常见的反向代理错误之一,当 Nginx 作为反向代理时,如果后端服务器(如应用服务器)无法处理请求(例如,由于宕机等原因),Nginx 将返回 502 错误。
在Nginx里做策略
可实现 跳转到更新维护页面
- • 方法一:
rewrite:Nginx维护页面可以全部重定向到同一个页面
location / {
rewrite ^(.\*)$ /maintain.html break;
}
注:需要注意的是,如果后面还有其他的重定向语句,则后面的重定向语句必须全部注释掉
location / {
return 503;
}
error_page 503 /maintain.html;
注:其他location优先级高的匹配均需要注释掉
location / {
root /var/webroot/maintain/;
index index.html index.htm;
}
阅读原文:原文链接
该文章在 2025/11/10 14:44:01 编辑过