配置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的默认端口
Mar 31 Servers
nginx简单配置多个server的方法
Mar 31 Servers
详解Nginx 工作原理
Mar 31 Servers
提升Nginx性能的一些建议
Mar 31 Servers
详解Nginx启动失败的几种错误处理
Apr 01 Servers
Nginx使用Lua模块实现WAF的原理解析
Sep 04 Servers
Rhit高效可视化Nginx日志查看工具
Nov 01 Servers
Vertica集成Apache Hudi重磅使用指南
Mar 31 Servers
tomcat的catalina.out日志按自定义时间格式进行分割的操作方法
Apr 02 Servers
nginx.conf配置文件结构小结
Apr 08 Servers
Windows Server 2019 域控制器安装图文教程
Apr 28 Servers
Apache SkyWalking 监控 MySQL Server 实战解析
Sep 23 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 PDOStatement:bindParam插入数据错误问题分析
2013/11/13 PHP
一个经典的PHP文件上传类分享
2014/11/18 PHP
PHP获取用户客户端真实IP的解决方案
2016/10/10 PHP
PHP随机获取未被微信屏蔽的域名(微信域名检测)
2017/03/19 PHP
详解PHP使用日期时间处理器Carbon人性化显示时间
2017/08/10 PHP
PHP通过bypass disable functions执行系统命令的方法汇总
2018/05/02 PHP
JQuery Tips(3) 关于$()包装集内元素的改变
2009/12/14 Javascript
JS.GetAllChild(element,deep,condition)使用介绍
2013/09/21 Javascript
jquery实现显示已选用户
2014/07/21 Javascript
理解Javascript图片预加载
2016/02/23 Javascript
基于jQuery实现仿QQ空间送礼物功能代码
2016/05/24 Javascript
js enter键激发事件实例代码
2016/08/17 Javascript
微信小程序 WebSocket详解及应用
2017/01/21 Javascript
Angular.js中ng-include用法及多标签页面的实现方式详解
2017/05/07 Javascript
JS基于正则表达式实现的密码强度验证功能示例
2017/09/21 Javascript
vue组件命名和props命名代码详解
2019/09/01 Javascript
uni app仿微信顶部导航条功能
2019/09/17 Javascript
js实现全选和全不选
2020/07/28 Javascript
[48:37]EG vs OG 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
[34:47]完美世界DOTA2联赛PWL S2 Magma vs LBZS 第一场 11.18
2020/11/18 DOTA
Python使用htpasswd实现基本认证授权的例子
2014/06/10 Python
Python图算法实例分析
2016/08/13 Python
简单实现python画圆功能
2018/01/25 Python
Python pandas常用函数详解
2018/02/07 Python
Jupyter notebook在mac:linux上的配置和远程访问的方法
2019/01/14 Python
python利用Excel读取和存储测试数据完成接口自动化教程
2020/04/30 Python
python3.8.1+selenium实现登录滑块验证功能
2020/05/22 Python
pycharm Tab键设置成4个空格的操作
2021/02/26 Python
华为俄罗斯官方网上商城:购买Huawei手机和平板
2017/04/21 全球购物
美国球鞋寄卖网站:Stadium Goods
2018/05/09 全球购物
物流司机岗位职责
2013/12/28 职场文书
优秀护士事迹材料
2014/12/25 职场文书
Python中tkinter的用户登录管理的实现
2021/04/22 Python
OpenCV-Python实现轮廓拟合
2021/06/08 Python
聊聊基于pytorch实现Resnet对本地数据集的训练问题
2022/03/25 Python