配置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配置SSL证书出错解决方案
Mar 31 Servers
Nginx反向代理配置的全过程记录
Jun 22 Servers
Windows下用Nginx配置https服务器及反向代理的问题
Sep 25 Servers
阿里云k8s服务升级时502错误 springboot项目应用
Apr 09 Servers
使用 Docker Compose 构建复杂的多容器App
Apr 30 Servers
排查Tomcat进程假死的问题
May 06 Servers
Linux中sftp常用命令整理
Jun 28 Servers
Zabbix对Kafka topic积压数据监控的问题(bug优化)
Jul 07 Servers
详解apache编译安装httpd-2.4.54及三种风格的init程序特点和区别
Jul 15 Servers
源码安装apache脚本部署过程详解
Sep 23 Servers
CentOS7 minimal 最小化安装网络设置过程
Dec 24 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微信开发之关注事件
2018/06/14 PHP
对laravel的session获取与存取方法详解
2019/10/08 PHP
php+iframe 实现上传文件功能示例
2020/03/04 PHP
baidu博客的编辑友情链接的新的层窗口!经典~支持【FF】
2007/02/09 Javascript
P3P Header解决Cookie跨域的问题
2013/03/12 Javascript
jQuery当鼠标悬停时放大图片的效果实例
2013/07/03 Javascript
JS函数重载的解决方案
2014/05/13 Javascript
NodeJS制作爬虫全过程
2014/12/22 NodeJs
JavaScript与ActionScript3两者的同性与差异性
2016/09/22 Javascript
jQuery为DOM动态追加事件的方法
2017/02/16 Javascript
JavaScript html5利用FileReader实现上传功能
2020/03/27 Javascript
激动人心的 Angular HttpClient的源码解析
2017/07/10 Javascript
vue组件初学_弹射小球(实例讲解)
2017/09/06 Javascript
Vue触发式全局组件构建的方法
2018/11/28 Javascript
JS+HTML5本地存储Localstorage实现注册登录及验证功能示例
2020/02/10 Javascript
使用vue cli4.x搭建vue项目的过程详解
2020/05/08 Javascript
vue实现多个echarts根据屏幕大小变化而变化实例
2020/07/19 Javascript
[03:22]DOTA2超级联赛专访单车:找到属于自己的英雄
2013/06/08 DOTA
python获取一组数据里最大值max函数用法实例
2015/05/26 Python
利用python实现命令行有道词典的方法示例
2017/01/31 Python
Python实现判断字符串中包含某个字符的判断函数示例
2018/01/08 Python
Python获取当前函数名称方法实例分享
2018/01/18 Python
python爬取拉勾网职位数据的方法
2018/01/24 Python
python3爬取各类天气信息
2018/02/24 Python
Python读取YAML文件过程详解
2019/12/30 Python
编译 pycaffe时报错:fatal error: numpy/arrayobject.h没有那个文件或目录
2020/11/29 Python
移动端rem布局的两种实现方法
2018/01/03 HTML / CSS
微信小程序“圣诞帽”的实现思路详解
2017/12/28 HTML / CSS
html5调用app分享功能示例(WebViewJavascriptBridge)
2018/03/21 HTML / CSS
Sunglasses Shop荷兰站:英国最大的太阳镜独立在线零售商和供应商
2017/01/08 全球购物
写求职信要注意什么问题
2014/04/12 职场文书
学校清明节活动总结
2014/07/04 职场文书
民事赔偿协议书
2014/11/02 职场文书
漂亮妈妈观后感
2015/06/08 职场文书
导游词之太原天龙山
2020/01/02 职场文书
Mysql数据库表中为什么有索引却没有提高查询速度
2022/02/24 MySQL