配置nginx 重定向到系统维护页面

 更新时间:2021年06月08日 09:46:00   作者:一 定 会 去 旅 行  
今天抽时间给大家普及nginx 重定向到系统维护页面的配置内容,nginx重定向问题说起来也很简单,因为重定向后直接跳转到静态页面,不需要后续操作和记录,所以直接301永久重定向。今天简单给大家介绍配置方法,一起看看吧

上周末兄弟项目准备扩展服务器以便提供更好的服务,兄弟项目有一些功能是实时提供到我这边的,需要我这边暂时把对应系统功能屏蔽,因为使用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重定向维护页面的资料请关注脚本之家其它相关文章!

相关文章

  • 一文带你搞懂什么是Nginx服务器

    一文带你搞懂什么是Nginx服务器

    这篇文章主要介绍了一文带你搞懂什么是Nginx,Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了iMAP/POP3/SMTP服务,需要的朋友可以参考下
    2023-04-04
  • Windows设置nginx启动端口的方法

    Windows设置nginx启动端口的方法

    在服务器配置与开发过程中,nginx 作为一款高效的 HTTP 和反向代理服务器,被广泛应用,而在 Windows 系统中,合理设置 nginx 的启动端口,是确保其正常运行与满足业务需求的关键步骤,本文将详细介绍 Windows 设置 nginx 启动端口的方法,需要的朋友可以参考下
    2025-02-02
  • 欧拉部署nginx的实现步骤

    欧拉部署nginx的实现步骤

    本文主要介绍了欧拉部署nginx的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-08-08
  • Nginx配置如何区分PC或手机访问不同域名

    Nginx配置如何区分PC或手机访问不同域名

    这篇文章主要介绍了Nginx配置如何区分PC或手机访问不同域名,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-10-10
  • nginx+rsync+inotify实现负载均衡配置方法

    nginx+rsync+inotify实现负载均衡配置方法

    这篇文章主要介绍了nginx+rsync+inotify实现负载均衡配置方法,需要的朋友可以参考下
    2014-11-11
  • nginx和Apache配置SSL证书的实现步骤

    nginx和Apache配置SSL证书的实现步骤

    SSL证书是一种数字证书,用于加密在网络上发送的数据并保护敏感信息的安全性,本文主要介绍了nginx和Apache配置SSL证书的实现步骤,具有一定的参考价值,感兴趣的可以了解一下
    2023-12-12
  • 使用nginx模拟进行蓝绿部署的方式

    使用nginx模拟进行蓝绿部署的方式

    今天小编就为大家分享一篇关于使用nginx模拟进行蓝绿部署的方式,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-12-12
  • Nginx在胖容器中的部署流程

    Nginx在胖容器中的部署流程

    胖容器(Fat Container)是一种容器技术的形态,它在传统的轻量级容器基础上进行了扩展和增强,Nginx是一款高性能的HTTP和反向代理web服务器,本文将给大家介绍Nginx在胖容器中的部署流程,需要的朋友可以参考下
    2024-04-04
  • Nginx和GeoIP模块读取IP所在的地域信息方法

    Nginx和GeoIP模块读取IP所在的地域信息方法

    今天小编就为大家分享一篇Nginx和GeoIP模块读取IP所在的地域信息方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-08-08
  • Nginx代理时header头中带

    Nginx代理时header头中带"_"信息丢失问题的解决

    这篇文章主要给大家介绍了关于Nginx代理时header头中带"_"信息丢失问题的解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-02-02

最新评论