在网站发版时,总会有那么一小段时间服务是访问不通的,一般用户看到的都会是一个502的错误页面
那么可以通过nginx实现一个简单的通知页面,比如:
实现这个功能,只需要两步:
第一:编写“upgrading.html”
例如本例的“upgrading.html”
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>张亚东博客</title>
<link href="https://static.zhyd.me/static/img/favicon.ico" rel="shortcut icon" type="image/x-icon">
<link href="https://cdn.bootcss.com/bootstrap/4.1.1/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<div class="container">
<div class="row">
<div class="col col-md-12 text-center">
<div class="alert alert-success alert-dismissable" style="margin-top: 20px">
<button type="button" class="close" data-dismiss="alert">×</button>
<strong>网站正在维护!</strong> 请稍等一会,先听听歌吧~~
</div>
</div>
</div>
<div class="row">
<div class="col col-md-12 text-center">
<iframe frameborder="no" border="0" marginwidth="0" marginheight="0" width=330 height=450 src="https://music.163.com/outchain/player?type=0&id=879855523&auto=1&height=430"></iframe>
</div>
</div>
</div>
</body>
</html>
第二:修改nginx配置文件
在server中增加如下配置:
error_page 502 upgrading.html;
error_page 503 upgrading.html;
error_page 504 upgrading.html;
location = /upgrading.html {
root /usr/share/nginx/html;
}
完整配置的格式如下:
server {
listen 80;
server_name xxx;
error_page 502 upgrading.html;
error_page 503 upgrading.html;
error_page 504 upgrading.html;
location = /upgrading.html {
root /usr/share/nginx/html;
}
location / {
// ... 省略
}
}
这段代码的意思就是:当系统返回502、503或者504响应时,跳转到 upgrading.html页面。其中root 指向的是upgrading.html文件的目录。