配置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对http请求处理的各个阶段详析
Mar 31 Servers
Nginx+SpringBoot实现负载均衡的示例
Mar 31 Servers
nginx请求限制配置方法
Jul 09 Servers
Nginx虚拟主机的配置步骤过程全解
Mar 31 Servers
Nginx禁止ip访问或非法域名访问
Apr 07 Servers
idea下配置tomcat避坑详解
Apr 12 Servers
Windows server 2012 配置Telnet以及用法详解
Apr 28 Servers
Nginx配置之禁止指定IP访问
May 02 Servers
详解如何使用Nginx解决跨域问题
May 06 Servers
openEuler 搭建java开发环境的详细过程
Jun 10 Servers
win sever 2022如何占用操作主机角色
Jun 25 Servers
阿里云服务器(windows)手动部署FTP站点详细教程
Aug 05 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
深入Apache与Nginx的优缺点比较详解
2013/06/17 PHP
Thinkphp和Bootstrap结合打造个性的分页样式(推荐)
2016/08/01 PHP
解决laravel 5.1报错:No supported encrypter found的办法
2017/06/07 PHP
PDO::quote讲解
2019/01/29 PHP
ExtJs的Date格式字符代码
2010/12/30 Javascript
写出高效jquery代码的19条指南
2014/03/19 Javascript
js查看一个函数的执行时间实例代码
2015/09/12 Javascript
JS实现可自定义大小,可双击关闭的弹出层效果
2015/10/16 Javascript
js实现select选择框效果及美化
2016/08/19 Javascript
AngularJs Understanding the Model Component
2016/09/02 Javascript
js判断价格,必须为数字且不能为负数的实现方法
2016/10/07 Javascript
Javascript的动态增加类的实现方法
2016/10/20 Javascript
javascript 删除数组元素和清空数组的简单方法
2017/02/24 Javascript
jquery实现弹窗功能(窗口居中显示)
2017/02/27 Javascript
详解vue 模版组件的三种用法
2017/07/21 Javascript
浅谈layui 绑定form submit提交表单的注意事项
2019/10/25 Javascript
jQuery开发仿QQ版音乐播放器
2020/07/10 jQuery
Handtrack.js库实现实时监测手部运动(推荐)
2021/02/08 Javascript
python zip文件 压缩
2008/12/24 Python
Python下的常用下载安装工具pip的安装方法
2015/11/13 Python
python 生成器协程运算实例
2017/09/04 Python
Python给图像添加噪声具体操作
2019/03/03 Python
python使用numpy实现直方图反向投影示例
2020/01/17 Python
浅谈Pycharm最有必要改的几个默认设置项
2020/02/14 Python
Python命令行参数argv和argparse该如何使用
2021/02/08 Python
Timberland法国官网:购买靴子、鞋子、衣服、夹克和配饰
2019/11/30 全球购物
泰国国际航空公司官网:Thai Airways International
2019/12/04 全球购物
师德学习感言
2014/01/31 职场文书
应届毕业生求职信
2014/05/26 职场文书
小学生我的梦想演讲稿
2014/08/21 职场文书
房产销售独家委托书范本
2014/10/01 职场文书
质检员岗位职责
2015/02/03 职场文书
2015年度环卫处工作总结
2015/07/24 职场文书
热爱劳动主题班会
2015/08/14 职场文书
Golang Gob编码(gob包的使用详解)
2021/05/07 Golang
手把手教你用SpringBoot将文件打包成zip存放或导出
2021/06/11 Java/Android