配置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 配置 proxy_pass 后 返回404问题
Mar 31 Servers
Nginx 502 Bad Gateway错误原因及解决方案
Mar 31 Servers
Nginx使用X-Accel-Redirect实现静态文件下载的统计、鉴权、防盗链、限速等
Apr 04 Servers
使用nginx配置访问wgcloud的方法
Jun 26 Servers
Apache Pulsar集群搭建部署详细过程
Feb 12 Servers
解决xampp安装后Apache无法启动
Mar 21 Servers
Apache Hudi集成Spark SQL操作hide表
Mar 31 Servers
Vscode中SSH插件如何远程连接Linux
May 02 Servers
nginx rewrite功能使用场景分析
May 30 Servers
win server2012 r2服务器共享文件夹如何设置
Jun 21 Servers
nginx配置指令之server_name的具体使用
Aug 14 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
PHP怎样调用MSSQL的存储过程
2006/10/09 PHP
discuz 首页四格:最新话题+最新回复+热门话题+精华文章插件
2007/08/19 PHP
提高php运行速度的一些小技巧分享
2012/07/03 PHP
解析PHP中intval()等int转换时的意外异常情况
2013/06/21 PHP
解析php中的escape函数
2013/06/29 PHP
PHP开发之用微信远程遥控服务器
2018/01/25 PHP
超级酷和最实用的jQuery实例收集(20个)
2010/04/21 Javascript
JS字符串函数扩展代码
2011/09/13 Javascript
Jquery时间验证和转换工具小例子
2013/07/01 Javascript
firefox浏览器不支持innerText的解决方法
2013/08/07 Javascript
JavaScript里四舍五入函数round用法实例
2015/04/06 Javascript
jQuery+css实现的蓝色水平二级导航菜单效果代码
2015/09/11 Javascript
prototype框架中美元符号$用法分析
2016/01/22 Javascript
Js与Jq获取浏览器和对象值的方法
2016/03/18 Javascript
jquery 实现复选框的全选操作实例代码
2017/01/24 Javascript
jQuery插件echarts实现的去掉X轴、Y轴和网格线效果示例【附demo源码下载】
2017/03/04 Javascript
微信小程序实现点击返回顶层的方法
2017/07/12 Javascript
[59:48]DOTA2-DPC中国联赛 正赛 VG vs Magma BO3 第一场 1月26日
2021/03/11 DOTA
python二叉树遍历的实现方法
2013/11/21 Python
asyncio 的 coroutine对象 与 Future对象使用指南
2016/09/11 Python
Python中eval带来的潜在风险代码分析
2017/12/11 Python
Python中循环后使用list.append()数据被覆盖问题的解决
2018/07/01 Python
在pyqt5中QLineEdit里面的内容回车发送的实例
2019/06/21 Python
python爬虫泛滥的解决方法详解
2020/11/25 Python
贝嫂喜欢的婴儿品牌,个性化的婴儿礼物:My 1st Years
2017/11/19 全球购物
一套.net面试题及答案
2016/11/02 面试题
社区工作者先进事迹
2014/01/18 职场文书
护理专业毕业生自荐书
2014/05/24 职场文书
致短跑运动员加油稿
2015/07/21 职场文书
土木工程生产实习心得体会
2016/01/22 职场文书
mysql知识点整理
2021/04/05 MySQL
Django使用channels + websocket打造在线聊天室
2021/05/20 Python
python 批量压缩图片的脚本
2021/06/02 Python
只用20行Python代码实现屏幕录制功能
2021/06/02 Python
JavaScript获取URL参数的方法分享
2022/04/07 Javascript
Win Server2016远程桌面如何允许多用户同时登录
2022/06/10 Servers