配置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服务器添加Systemd自定义服务过程解析
Mar 31 Servers
查看nginx配置文件路径和资源文件路径的方法
Mar 31 Servers
Nginx实现高可用集群构建(Keepalived+Haproxy+Nginx)
May 27 Servers
nginx中proxy_pass各种用法详解
Nov 07 Servers
Z-Order加速Hudi大规模数据集方案分析
Mar 31 Servers
Windows Server 2012配置DNS服务器的方法
Apr 29 Servers
安装Windows Server 2012 R2企业版操作系统并设置好相关参数
Apr 29 Servers
Apache SeaTunnel实现 非CDC数据抽取
May 20 Servers
使用Nginx+Tomcat实现负载均衡的全过程
May 30 Servers
linux目录管理方法介绍
Jun 01 Servers
openEuler 搭建java开发环境的详细过程
Jun 10 Servers
Windows7下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 修复未正常关闭的HTML标签实现代码(支持嵌套和就近闭合)
2012/06/07 PHP
浅析使用Turck-mmcache编译来加速、优化PHP代码
2013/06/20 PHP
PHP使用glob函数遍历目录或文件夹的方法
2014/12/16 PHP
php自定义中文字符串截取函数substr_for_gb2312及substr_for_utf8示例
2016/05/28 PHP
PHP中上传文件打印错误错误类型分析
2019/04/14 PHP
在Laravel 中实现是否关注的示例
2019/10/22 PHP
拖拉表格的JS函数
2008/11/20 Javascript
可以将word转成html的js代码
2010/04/11 Javascript
jQuery AjaxQueue改进步骤
2011/10/06 Javascript
使用jQuery不判断浏览器高度解决iframe自适应高度问题
2014/12/16 Javascript
window.onload与$(document).ready()的区别分析
2015/05/30 Javascript
深入学习JavaScript的AngularJS框架中指令的使用方法
2016/03/05 Javascript
基于jQuery实现表格的排序
2016/12/02 Javascript
基于JavaScript实现自定义滚动条
2017/01/25 Javascript
基于bootstrap实现bootstrap中文网巨幕效果
2017/05/02 Javascript
微信小程序中做用户登录与登录态维护的实现详解
2017/05/17 Javascript
js轮播图的插件化封装详解
2017/07/17 Javascript
基于ajax和jsonp的原生封装(实例)
2017/10/16 Javascript
React Native 搭建开发环境的方法步骤
2017/10/30 Javascript
简述vue状态管理模式之vuex
2018/08/29 Javascript
[05:36]DOTA2 2015国际邀请赛中国区预选赛第四日TOP10
2015/05/29 DOTA
python编写网页爬虫脚本并实现APScheduler调度
2014/07/28 Python
python利用装饰器进行运算的实例分析
2015/08/04 Python
Python爬虫利用cookie实现模拟登陆实例详解
2017/01/12 Python
Python OpenCV获取视频的方法
2018/02/28 Python
Python中return self的用法详解
2018/07/27 Python
python判断列表的连续数字范围并分块的方法
2018/11/16 Python
Python线性拟合实现函数与用法示例
2018/12/13 Python
Python paramiko模块使用解析(实现ssh)
2019/08/30 Python
python3中关于excel追加写入格式被覆盖问题(实例代码)
2020/01/10 Python
python 写一个文件分发小程序
2020/12/05 Python
CSS3绘制六边形的简单实现
2016/08/25 HTML / CSS
行政人事岗位职责
2014/03/17 职场文书
法定代表人资格证明书
2015/06/18 职场文书
小学校本教研总结
2015/08/13 职场文书
2019奶茶店创业计划书范本!
2019/07/15 职场文书