配置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
win10安装配置nginx的过程
Mar 31 Servers
nginx限制并发连接请求数的方法
Apr 01 Servers
教你快速开启Apache SkyWalking的自监控
Apr 25 Servers
解决xampp安装后Apache无法启动
Mar 21 Servers
CentOS下安装Jenkins的完整步骤
Apr 07 Servers
Docker 镜像介绍以及commit相关操作
Apr 13 Servers
Windows和Linux上部署Golang并运行程序
Apr 22 Servers
docker compose 部署 golang 的 Athens 私有代理问题
Apr 28 Servers
Zabbix对Kafka topic积压数据监控的解决方案
Jul 07 Servers
详解apache编译安装httpd-2.4.54及三种风格的init程序特点和区别
Jul 15 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资源管理框架Assetic简介
2014/06/12 PHP
PHP实现通过URL提取根域名
2016/03/31 PHP
php与c 实现按行读取文件实例代码
2017/01/03 PHP
两个listbox实现选项的添加删除和搜索
2013/03/01 Javascript
js获取本机的外网/广域网ip地址完整源码
2013/08/12 Javascript
js实现人才网站职位选择功能的方法
2015/08/14 Javascript
微信公众平台开发教程(四) 实例入门:机器人回复(附源码)
2016/12/02 Javascript
vue实现百度搜索下拉提示功能实例
2017/06/14 Javascript
vue2.0 better-scroll 实现移动端滑动的示例代码
2018/01/25 Javascript
vue2.0.js的多级联动选择器实现方法
2018/02/09 Javascript
详解Angular5路由传值方式及其相关问题
2018/04/28 Javascript
Vuejs开发环境搭建及热更新【推荐】
2018/09/07 Javascript
vue打开子组件弹窗都刷新功能的实现
2020/09/21 Javascript
[09:37]DOTA2卡尔工作室 英雄介绍圣堂刺客篇
2013/06/13 DOTA
[50:48]LGD vs CHAOS 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
[45:52]完美世界DOTA2联赛PWL S3 Forest vs INK ICE 第二场 12.09
2020/12/12 DOTA
python利用paramiko连接远程服务器执行命令的方法
2017/10/16 Python
Python编写合并字典并实现敏感目录的小脚本
2019/02/26 Python
超简单使用Python换脸实例
2019/03/27 Python
Python实现定时执行任务的三种方式简单示例
2019/03/30 Python
python使用time、datetime返回工作日列表实例代码
2019/05/09 Python
Python实现个人微信号自动监控告警的示例
2019/07/03 Python
Python使用selenium + headless chrome获取网页内容的方法示例
2019/10/16 Python
django-crontab实现服务端的定时任务的示例代码
2020/02/17 Python
pandas数据处理之绘图的实现
2020/06/15 Python
使用Python webdriver图书馆抢座自动预约的正确方法
2021/03/04 Python
HTML5中FileReader接口使用方法实例详解
2017/08/26 HTML / CSS
GafasWorld西班牙:购买太阳镜、眼镜和隐形眼镜
2019/09/08 全球购物
怎样在程序里获得一个空指针
2015/01/24 面试题
大学校园生活自我鉴定
2014/01/13 职场文书
电视购物广告词
2014/03/19 职场文书
大学生社团活动总结
2014/04/26 职场文书
基层党支部公开承诺书
2014/05/29 职场文书
设备技术员岗位职责
2015/04/11 职场文书
python3实现常见的排序算法(示例代码)
2021/07/04 Python
Python中三种花式打印的示例详解
2022/03/19 Python