配置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 location优先级的深入讲解
Mar 31 Servers
nginx安装以及配置的详细过程记录
Sep 15 Servers
Nginx 反向代理解决跨域问题多种情况分析
Jan 18 Servers
Kubernetes部署实例并配置Deployment、网络映射、副本集
Apr 01 Servers
Dashboard管理Kubernetes集群与API访问配置
Apr 01 Servers
Consul在linux环境的集群部署
Apr 08 Servers
微信告警的zabbix监控系统 监控整个NGINX集群
Apr 18 Servers
Tomcat弱口令复现及利用
May 06 Servers
nginx设置资源请求目录的方式详解
May 30 Servers
CentOS7环境下MySQL8常用命令小结
Jun 10 Servers
Windows Server 2022 超融合部署(图文教程)
Jun 25 Servers
搭建zabbix监控以及邮件报警的超级详细教学
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
MYSQL 小技巧 -- LAST_INSERT_ID
2009/11/24 PHP
浅析PHP中的i++与++i的区别及效率
2016/06/15 PHP
js中top、clientTop、scrollTop、offsetTop的区别 文字详细说明版
2011/01/08 Javascript
jquery mobile实现拨打电话功能的几种方法
2013/08/05 Javascript
基于jquery实现的文字向上跑动类似跑马灯的效果
2014/06/17 Javascript
jquery根据属性和index来查找属性值并操作
2014/07/25 Javascript
ECMAScript6函数剩余参数(Rest Parameters)
2015/06/12 Javascript
Node.js配合node-http-proxy解决本地开发ajax跨域问题
2016/08/31 Javascript
javascript常用的设计模式
2017/02/09 Javascript
JS仿QQ好友列表展开、收缩功能(第二篇)
2017/07/07 Javascript
AngularJs用户登录问题处理(交互及验证、阻止FQ处理)
2017/10/26 Javascript
vue按需加载组件webpack require.ensure的方法
2017/12/13 Javascript
ng-events类似ionic中Events的angular全局事件
2018/09/05 Javascript
vue实现压缩图片预览并上传功能(promise封装)
2019/01/10 Javascript
Webpack中loader打包各种文件的方法实例
2019/09/03 Javascript
vue实现tab栏点击高亮效果
2020/08/19 Javascript
[03:42]2014DOTA2西雅图国际邀请赛7月9日TOPPLAY
2014/07/09 DOTA
python实现得到一个给定类的虚函数
2014/09/28 Python
浅谈python之高阶函数和匿名函数
2019/03/21 Python
Django框架 Pagination分页实现代码实例
2019/09/04 Python
简单介绍django提供的加密算法
2019/12/18 Python
django模型动态修改参数,增加 filter 字段的方式
2020/03/16 Python
为什么称python为胶水语言
2020/06/16 Python
如何利用Python matplotlib绘制雷达图
2020/12/21 Python
HealthElement海外旗舰店:新西兰大卖场
2018/02/23 全球购物
拥有超过850家商店的美国在线派对商店:Party City
2018/10/21 全球购物
应聘医药代表职位求职信
2013/10/21 职场文书
公积金转移接收函
2014/01/11 职场文书
教育技术职业规划范文
2014/03/04 职场文书
化工实习心得体会
2014/09/09 职场文书
2014年大学生村官工作总结
2014/11/19 职场文书
中秋客户感谢信
2015/01/22 职场文书
开票证明
2015/06/23 职场文书
乡镇司法所2015年度工作总结
2015/10/14 职场文书
Nginx 负载均衡是什么以及该如何配置
2021/03/31 Servers
Docker官方工具docker-registry案例演示
2022/04/13 Servers