配置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 负载均衡是什么以及该如何配置
Mar 31 Servers
nginx配置ssl实现https的方法示例
Mar 31 Servers
Nginx搭建rtmp直播服务器实现代码
Mar 31 Servers
Nginx进程调度问题详解
Sep 25 Servers
Nginx源码编译安装过程记录
Nov 17 Servers
Nginx流量拷贝ngx_http_mirror_module模块使用方法详解
Apr 07 Servers
永中文档在线转换预览基于nginx配置部署方案
Jun 10 Servers
设置IIS Express并发数
Jul 07 Servers
nginx代理实现静态资源访问的示例代码
Jul 07 Servers
本地搭建minio文件服务器(使用bat脚本启动)的方法
Jul 15 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
php设计模式 FlyWeight (享元模式)
2011/06/26 PHP
ie 处理 gif动画 的onload 事件的一个 bug
2007/04/12 Javascript
学习ExtJS fit布局使用说明
2009/10/08 Javascript
Extjs优化(二)Form表单提交通用实现
2013/04/15 Javascript
JavaScript数据库TaffyDB用法实例分析
2015/07/27 Javascript
基于jquery实现页面滚动时顶部导航显示隐藏
2020/04/20 Javascript
jQuery实现多级联动下拉列表查询框
2016/01/18 Javascript
jQuery实现的瀑布流加载效果示例
2016/09/13 Javascript
Bootstrap的class样式小结
2016/12/01 Javascript
bootstrap table 多选框分页保留示例代码
2017/03/08 Javascript
vue 解决addRoutes动态添加路由后刷新失效问题
2018/07/02 Javascript
Vue中使用的EventBus有生命周期
2018/07/12 Javascript
微信小程序仿朋友圈发布动态功能
2018/07/15 Javascript
详解Vue源码学习之双向绑定
2019/04/10 Javascript
vue router导航守卫(router.beforeEach())的使用详解
2019/04/19 Javascript
layui table复选框禁止某几条勾选的实例
2019/09/20 Javascript
js实现内置计时器
2019/12/16 Javascript
谈一谈vue请求数据放在created好还是mounted里好
2020/07/27 Javascript
vscode中Vue别名路径提示的实现
2020/07/31 Javascript
python条件变量之生产者与消费者操作实例分析
2017/03/22 Python
Python matplotlib 画图窗口显示到gui或者控制台的实例
2018/05/24 Python
使用django实现一个代码发布系统
2019/07/18 Python
Canvas波浪花环的示例代码
2020/08/21 HTML / CSS
Canon佳能美国官方商店:购买数码相机、数码单反相机、镜头和打印机
2016/11/15 全球购物
公务员总结性个人自我评价
2013/12/05 职场文书
生产车间班组长岗位职责
2014/01/06 职场文书
好家长事迹材料
2014/01/23 职场文书
房屋租赁协议书
2014/04/10 职场文书
促销活动总结
2014/04/28 职场文书
销售团队口号大全
2014/06/06 职场文书
改进作风怎么办发言材料
2014/08/17 职场文书
先进员工事迹材料
2014/12/20 职场文书
公司出差管理制度范本
2015/08/05 职场文书
2019职场单身人才调研报告:互联网行业单身比例最高
2019/08/07 职场文书
JavaScript使用canvas绘制坐标和线
2021/04/28 Javascript
Windows server 2003卸载和安装IIS的图文教程
2022/07/15 Servers