维护页面配置

项目更新,需要将所有页面重定向到指定的维护页面,并且保证资源文件正常加载

代码示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
location / {
set $flag 0;
# 1. maintenance file exist
if (-f $document_root/maintain/maintain.html) {
set $flag "${flag}1";
}

# 2. ignore resources loaded by the maintenance page
if ( $request_uri !~ "(/maintain/Resource/.*)$") {
set $flag "${flag}2";
}

if ($flag = "01" ){
break;
}

# meet condition 1,2, redirect to maintenance page
if ($flag = "012" ){
return 503;
}

# reset customize config ...
}

error_page 503 @maintenance;
location @maintenance {
rewrite ^(.*)$ /maintain/maintain.html break;
}

注意事项

  1. 如果存在maintain\maintain.html,就会触发指向维护页面,正常情况下注释掉set $flag "${flag}1";或更改文件名。
  2. nginx的if后必须加空格。
  3. nginx的if判断不能用多条件判断和嵌套操作。
-------------本文结束感谢您的阅读-------------