配置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 相关文章推荐
Nginx实现反向代理
Sep 20 Servers
nginx 防盗链防爬虫配置详解
Mar 31 Servers
Nginx反向代理配置的全过程记录
Jun 22 Servers
使用kubeadm命令行工具创建kubernetes集群
Mar 31 Servers
CKAD认证中部署k8s并配置Calico插件
Mar 31 Servers
Windows server 2012搭建FTP服务器
Apr 29 Servers
Vscode中SSH插件如何远程连接Linux
May 02 Servers
配置nginx负载均衡
May 06 Servers
Nginx HTTP跳转至HTTPS
May 15 Servers
netty 实现tomcat的示例代码
Jun 05 Servers
安装harbor作为docker镜像仓库的问题
Jun 14 Servers
nginx配置指令之server_name的具体使用
Aug 14 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
信用卡效验程序
2006/10/09 PHP
用php解析html的实现代码
2011/08/08 PHP
深入php list()函数的详解
2013/06/05 PHP
php获取微信共享收货地址的方法
2017/12/21 PHP
thinkphp5框架前后端分离项目实现分页功能的方法分析
2019/10/08 PHP
php使用pthreads v3多线程实现抓取新浪新闻信息操作示例
2020/02/21 PHP
js 事件处理函数间的Event物件是否全等
2011/04/08 Javascript
删除Javascript Object中间的key
2014/11/18 Javascript
今天抽时间给大家整理jquery和ajax的相关知识
2015/11/17 Javascript
js+canvas绘制矩形的方法
2016/01/28 Javascript
Bootstrap页面布局基础知识全面解析
2016/06/13 Javascript
早该知道的7个JavaScript技巧
2016/06/21 Javascript
jQuery中Find选择器用法示例
2016/09/21 Javascript
关于js二维数组和多维数组的定义声明(详解)
2016/10/02 Javascript
JavaScript仿微信打飞机游戏
2020/07/05 Javascript
关于JavaScript语句后面的分号问题
2017/12/07 Javascript
使用Vue实现简单计算器
2020/02/25 Javascript
Electron整合React使用搭建开发环境的步骤详解
2020/06/07 Javascript
[01:45]2014DOTA2 TI预选赛预选赛 大神专访第二弹!
2014/05/20 DOTA
Python的Flask开发框架简单上手笔记
2015/11/16 Python
python正则中最短匹配实现代码
2018/01/16 Python
解决每次打开pycharm直接进入项目的问题
2018/10/28 Python
python 使用正则表达式按照多个空格分割字符的实例
2018/12/20 Python
python使用wxpy轻松实现微信防撤回的方法
2019/02/21 Python
pycharm激活码快速激活及使用步骤
2020/03/12 Python
多视角3D可旋转的HTML5 Logo动画
2016/03/02 HTML / CSS
No7 Beauty美国官网:英国国民护肤品牌
2019/10/31 全球购物
产品工艺师的岗位职责
2013/11/15 职场文书
酒店总经理助理岗位职责
2014/02/01 职场文书
八一演出活动方案
2014/02/03 职场文书
协会周年庆活动方案
2014/08/26 职场文书
2014年学校党建工作总结
2014/11/11 职场文书
情人节活动总结范文
2015/02/05 职场文书
2015年城管个人工作总结范文
2015/04/20 职场文书
2016年教师寒假学习心得体会
2015/10/09 职场文书
2019年让高校“心动”的自荐信
2019/03/25 职场文书