Nginx全站升级提示,Nginx全站rewrite到指定页面
有个需求,需要整站停机做重大升级,希望把整站所有的请求都定向到一个页面,提示系统正在升级中
在nginx.conf 文件http标签里面,添加一行
include vhost/upgrade.conf;
vhost/upgrade.conf文件配置如下:
server {
listen 80;
server_name www.xxxx.com;
location / {
root html;
if (!-e $request_filename) {
rewrite ^/(.*) http://www.xxx.com/index.html?$1&;
}
}
error_page 404 500 502 503 504 /index.html;
}
server {
listen 443 ssl;
server_name www.xxx.com;
ssl on;
ssl_certificate /data/app/nginx-1.8.0/key/aaa.crt;
ssl_certificate_key /data/app/nginx-1.8.0/key/private.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
ssl_prefer_server_ciphers on;
add_header Strict-Transport-Security "max-age=31536000";
location / {
root html;
if (!-e $request_filename) {
rewrite ^/(.*) https://www.xxx.com/index.html?$1&;
}
error_page 404 500 502 503 504 /index.html;
}
}
html文件夹里面放的就是我们的升级公告,内容非常简单:
一个index.html文件,还有公司的logo(这个不懂的可以让前端给写一下)
nginx -s reload ,使配置生效
这样用户再访问,整个网站的所有请求都是这个升级公告了。