一、描述
本人公司一般发版是不停项目的,但是遇到特殊情况、就不得不停项目发版,用户就会有几个小时不能使用。
停项目发版时,会修改下nginx,让所有请求都跳转到维护页面,在此记录下修改方法。
二、nginx配置维护页面的方法
1.首先找到自己服务器安装nginx的路径。
2.可以写一个简单的维护用html页面updating.html
,例如:
<html>
<header></header>
<body>
<h1>尊敬的用户,系统目前正在升级,请稍后再试,给您带来的不便敬请谅解,谢谢</h1>
</body>
可以放到服务器nginx目录里的html文件夹下,例如/home/admin/nginx/html/updating.html
(这个文件夹下一般有nginx自带的index.html)
3.可以检查下/home/admin/nginx/conf/nginx.conf
,看下是怎么配置的;例如,本人的在最下面是这样写的:
#正常情况用这个
include /home/admin/nginx/conf.d/*.conf;
#维护时用这个
# include /home/admin/nginx/conf/weihu.conf;
意思是nginx.conf
里本身没有配置什么规则,主要的规则在conf.d
文件夹中;
这样维护时就可以切换为:
#正常情况用这个
# include /home/admin/nginx/conf.d/*.conf;
#维护时用这个
include /home/admin/nginx/conf/weihu.conf;
4./home/admin/nginx/conf/weihu.conf
文件中,是这样配置的:
server {
listen 80;
server_name 10.1.2.3;
#直接让请求跳转到updating.html
rewrite ^(.*)$ /updating.html break;
#由于Nginx不允许静态文件响应POST请求,故此处将“405 not allowed”修改为“200 ok”
error_page 405 =200 $uri;
}
server {
listen 8080;
server_name 10.1.2.3;
#直接让请求跳转到updating.html
rewrite ^(.*)$ /updating.html break;
#由于Nginx不允许静态文件响应POST请求,故此处将“405 not allowed”修改为“200 ok”
error_page 405 =200 $uri;
}
(其中,server_name我配置的是本地ip,这个不是很重要)
其中,主要是 rewrite ^(.*)$ /updating.html break;
,这个可以让请求直接转到updating.html
页面,也就是维护页面。
访问这台nginx服务器的、80端口和8080端口的所有请求,都会被转到维护页面。
5.使用/home/admin/nginx/sbin/nginx -s reload
命令重启nginx。
6.等项目升级完毕后,再把nginx.conf
还原即可:
#正常情况用这个
include /home/admin/nginx/conf.d/*.conf;
#维护时用这个
# include /home/admin/nginx/conf/weihu.conf;
别忘了重启nginx,/home/admin/nginx/sbin/nginx -s reload
。