配置nginx 重定向到系统维护页面


Posted in Servers onJune 08, 2021

上周末兄弟项目准备扩展服务器以便提供更好的服务,兄弟项目有一些功能是实时提供到我这边的,需要我这边暂时把对应系统功能屏蔽,因为使用nginx,所以可以直接配置nginx重定向到固定系统维护页面。

nginx重定向其实很简单,用return或rewrite关键字均可,因为重定向后直接跳转到静态页面,不需要后续操作和记录,所以直接301永久重定向。

其中重定向既可以在server中配置,也可以在具体的location中配置,下面分别简单介绍。

在server中配置:

http {
    server{
        listen 80;
        server_name A.com;

     # 以下return 或 rewrite 选择其中一个就行。其中upgrade.html 是自己写的提示页面
        return 301 http://B.com/upgrade.html;  
        # rewrite ^/(.*)$ http://B.com/upgrade.html permanent;
        location / {          # 此处省略后面配置内容     }  } }

或者在location中配置:

http {
    server{
        listen 80;
        server_name A.com;
        location / {
            rewrite ^/(.*)$ http://B.com/upgrade.html permanent;
           # 此处省略后面配置内容     }  } }

从以上实例看出,return用301参数重定向,rewrite用permanent(当然还可以用break,last,区别的话自己查资料)。

不知道你们有没有发现,以上两个例子中,都是用 A.com去重定向到 B.com ,我试过,用A.com直接重定向到A.com/upgrade.html,会报错重复次数太多,也就是进入死循环。在同时管理多个域名是可以配置用A重定向B,但是如果只有一个域名A那怎么弄呢?

这时候就用到if条件判断了,此处我们以在server中配置为例说明:

http {
    server{
        listen 80;
        server_name A.com;        

        # 注意 if 后面必须有一个空格!!!
        if ($request_uri !~ "/upgrade.html$") {
            return 301 http://A.com/upgrade.html;
        }

        location / {
          # 此处省略后面配置内容
     }
   } 
}

以上实例说明,当访问路径不包含 /upgrade.html时就重定向到upgrade.html,此时能够重定向,不会再有重复次数太多的提示,但有另一个问题,就是upgrade.html中的图片无法显示了,暂时没时间去研究如何避免图片被重定向了,后面有时间再补充。

测试if条件的时候,遇到一个特别坑的事,就是添加if后重启nginx报错:

Job for nginx.service failed because the control process exited with error code. See "systemctl status nginx.service" and "journalctl -xe" for details.

输入systemctl status nginx.service可查看错误信息,其中nginx: [emerg] unknown directive "if($request_uri"错误查找到答案,原来是if后面必须要有一个空格!!!!,太坑了,网上那些介绍nginxif的文章都没有提到这么重要的信息。。。

感谢资料:

if后必须有空格:https://blog.csdn.net/palet/article/details/103394236

nginx中return和rewrite:https://blog.csdn.net/u010982507/article/details/104025717

知识点补充

配置nginx输入任何地址都跳转至维护页面

笔记一下:配置nginx输入任何地址都跳转至维护页面

server {
    listen 80;
    root /xxx/xxx/src;
    index index.html index.htm;

    server_name test.xxx.com;

    set $flag 0;
      if ($request_uri !~ "(/static/.*)$"){
          set $flag "${flag}1";
      }
      if ($request_uri !~ "/502.html$" ){
          set $flag "${flag}2";
      }
      if ($flag = "012") {
         rewrite ^(.*) http://test.xxx.com/502.html permanent;
      }

 location /{
     ...

以上就是nginx 重定向到系统维护页面的详细内容,更多关于nginx重定向维护页面的资料请关注三水点靠木其它相关文章!

Servers 相关文章推荐
Centos7.7 64位利用本地完整安装包安装lnmp/lamp套件教程
Mar 09 Servers
nginx处理http请求实现过程解析
Mar 31 Servers
nginx proxy_cache 缓存配置详解
Mar 31 Servers
制作能在nginx和IIS中使用的ssl证书
Jun 21 Servers
OpenStack虚拟机快照和增量备份实现方法
Apr 04 Servers
使用Nginx的访问日志统计PV与UV
May 06 Servers
阿里云国际版 使用Nginx作为HTTPS转发代理服务器
May 11 Servers
openEuler 搭建java开发环境的详细过程
Jun 10 Servers
安装harbor作为docker镜像仓库的问题
Jun 14 Servers
Apache POI操作批量导入MySQL数据库
Jun 21 Servers
Windows Server 修改远程桌面端口的实现
Jun 25 Servers
git stash(储藏)的用法总结
Jun 25 Servers
nginx配置文件使用环境变量的操作方法
Jun 02 #Servers
nginx+lua单机上万并发的实现
May 31 #Servers
Nginx实现高可用集群构建(Keepalived+Haproxy+Nginx)
JVM上高性能数据格式库包Apache Arrow入门和架构详解(Gkatziouras)
Nginx配置Https安全认证的实现
May 26 #Servers
nginx部署多前端项目的几种方法
Nginx如何配置Http、Https、WS、WSS的方法步骤
May 11 #Servers
You might like
php中fgetcsv()函数用法实例
2014/11/28 PHP
php中随机函数mt_rand()与rand()性能对比分析
2014/12/01 PHP
PHP准确取得服务器IP地址的方法
2015/06/02 PHP
PHP提取字符串中的手机号正则表达式怎么写
2017/07/17 PHP
关于ThinkPhp 框架表单验证及ajax验证问题
2017/07/19 PHP
jquery ajax执行后台方法
2010/03/18 Javascript
javascript 函数调用的对象和方法
2010/07/01 Javascript
使用apply方法处理数组的三个技巧[译]
2012/09/20 Javascript
Document:getElementsByName()使用方法及示例
2013/10/28 Javascript
javascript中全局对象的isNaN()方法使用介绍
2013/12/19 Javascript
清除div下面的所有标签的方法
2014/02/17 Javascript
js键盘事件的keyCode
2014/07/29 Javascript
jQuery大于号(>)选择器的作用解释
2015/01/13 Javascript
使用getBoundingClientRect方法实现简洁的sticky组件的方法
2016/03/22 Javascript
JavaScript中的数组遍历forEach()与map()方法以及兼容写法介绍
2016/05/19 Javascript
javascript url几种编码方式详解
2016/06/06 Javascript
bootstrap监听滚动实现头部跟随滚动
2016/11/08 Javascript
VUE元素的隐藏和显示(v-show指令)
2017/06/23 Javascript
JavaScript实现的原生态兼容IE6可调可控滚动文字功能详解
2017/09/19 Javascript
vue+jquery+lodash实现滑动时顶部悬浮固定效果
2018/04/28 jQuery
layui实现form表单同时提交数据和文件的代码
2019/10/25 Javascript
Vue2.0 $set()的正确使用详解
2020/07/28 Javascript
我所理解的JavaScript中的this指向
2020/09/04 Javascript
[01:22:10]Ti4 循环赛第二日 DK vs Empire
2014/07/11 DOTA
解决python Jupyter不能导入外部包问题
2020/04/15 Python
HTML5 device access 设备访问详解
2018/05/24 HTML / CSS
以思科路由器为例你写下单臂路由的配置命令
2013/08/03 面试题
华为python面试题
2016/05/03 面试题
艺术爱好者的自我评价分享
2013/10/08 职场文书
电子银行营销方案
2014/02/22 职场文书
信息与计算科学专业推荐信
2014/02/23 职场文书
体育口号大全
2014/06/18 职场文书
退休教师追悼词
2015/06/23 职场文书
如何把新闻人物写得立体、鲜活?
2019/08/14 职场文书
一起来看看Vue的核心原理剖析
2022/03/24 Vue.js
Win11应用商店打开闪退怎么解决? win11应用商店打不开的多种解决办法
2022/04/05 数码科技