配置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配置ssl实现https的方法示例
Mar 31 Servers
Nginx tp3.2.3 404问题解决方案
Mar 31 Servers
如何利用map实现Nginx允许多个域名跨域
Mar 31 Servers
Nginx已编译的nginx-添加新模块
Apr 01 Servers
NGINX 权限控制文件预览和下载的实现原理
Jan 18 Servers
nginx从安装到配置详细说明(安装,安全配置,防盗链,动静分离,配置 HTTPS,性能优化)
Feb 12 Servers
Kubernetes控制节点的部署
Apr 01 Servers
Nginx配置根据url参数重定向
Apr 11 Servers
Win Server2016远程桌面如何允许多用户同时登录
Jun 10 Servers
详解ZABBIX监控ESXI主机的问题
Jun 21 Servers
nginx代理实现静态资源访问的示例代码
Jul 07 Servers
修改Nginx配置返回指定content-type的方法
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
用Apache反向代理设置对外的WWW和文件服务器
2006/10/09 PHP
PHP 输出简单动态WAP页面
2009/06/09 PHP
php等比例缩放图片及剪切图片代码分享
2016/02/13 PHP
jquery中获取select选中值的代码
2011/06/27 Javascript
Knockout text绑定DOM的使用方法
2013/11/15 Javascript
JavaScript中this关键词的使用技巧、工作原理以及注意事项
2014/05/20 Javascript
iPhone手机上搭建nodejs服务器步骤方法
2015/07/06 NodeJs
javascript实现选中复选框后相关输入框变灰不可用的方法
2015/08/11 Javascript
js实现索引图片切换效果
2015/11/21 Javascript
JS实现图片平面旋转的方法
2016/03/01 Javascript
Bootstrap table两种分页示例
2016/12/23 Javascript
vue 使用Jade模板写html,stylus写css的方法
2018/02/23 Javascript
浅谈vue中.vue文件解析流程
2018/04/24 Javascript
Vue路由切换时的左滑和右滑效果示例
2018/05/29 Javascript
jQuery动态移除与增加onclick属性的方法详解
2018/06/07 jQuery
JS实现仿微信支付弹窗功能
2018/06/25 Javascript
webpack中如何使用雪碧图的示例代码
2018/11/11 Javascript
vuex + keep-alive实现tab标签页面缓存功能
2019/10/17 Javascript
vue iview实现动态新增和删除
2020/06/17 Javascript
python 实现网上商城,转账,存取款等功能的信用卡系统
2016/07/15 Python
Python中矩阵库Numpy基本操作详解
2017/11/21 Python
Python反转序列的方法实例分析
2018/03/21 Python
Python 实现在文件中的每一行添加一个逗号
2018/04/29 Python
详解python tkinter教程-事件绑定
2019/03/28 Python
python实现H2O中的随机森林算法介绍及其项目实战
2019/08/29 Python
解决Pytorch 加载训练好的模型 遇到的error问题
2020/01/10 Python
基于Tensorflow批量数据的输入实现方式
2020/02/05 Python
TensorFlow通过文件名/文件夹名获取标签,并加入队列的实现
2020/02/17 Python
python 识别登录验证码图片功能的实现代码(完整代码)
2020/07/03 Python
HTML5 script元素async、defer异步加载使用介绍
2013/08/23 HTML / CSS
经理职责范文
2013/11/08 职场文书
挂职思想汇报
2013/12/31 职场文书
助人为乐好少年事迹材料
2014/08/18 职场文书
结婚纪念日感言
2015/08/01 职场文书
python实现自动化群控的步骤
2021/04/11 Python
浅谈为什么我的 z-index 又不生效了
2022/07/15 HTML / CSS