Nginx配置维护模式

一、Nginx配置文件

java 复制代码
 server {
    listen 80;
    server_name yourdomain.com;

    # 核心逻辑:检测维护标记文件是否存在
    if (-f /var/www/maintenance.enable) {
        # 如果文件存在,返回 509 状态码,并重写为维护页面
        return 509;
    }

    # 错误页面重定向
    error_page 509 @maintenance;
    location @maintenance {
        root /usr/share/nginx/html;
        rewrite ^(.*)$ /maintenance.html break;
    }

    # 正常的业务路由
    location / {
        proxy_pass http://backend_server;
    }
}

二、HTML文件(maintenance.html)

html 复制代码
<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>系统维护中</title>
    <style>
        /* 基础重置与全局样式 */
        * { 
			margin: 0; 
			padding: 0; 
			box-sizing: border-box; 
		}
        body {
            font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
            background: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%);
            display: flex;
            justify-content: center;
            align-items: center;
            min-height: 100vh;
            color: #333;
            text-align: center;
            padding: 20px;
        }

        /* 内容卡片样式 */
        .container {
            background: #ffffff;
            padding: 50px 40px;
            border-radius: 12px;
            box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08);
            max-width: 600px;
            width: 100%;
        }

        /* 图标与标题 */
        .icon { 
			font-size: 60px; 
			margin-bottom: 20px; 
		}
		
        h1 { 
			font-size: 28px; 
			margin-bottom: 15px; 
			color: #2c3e50; 
		}
		
        p { 
			font-size: 16px; 
			line-height: 1.6; 
			color: #555; 
			margin-bottom: 10px; 
		}

        /* 移动端适配 */
        @media (max-width: 480px) {
            .container { padding: 30px 20px; }
            h1 { font-size: 22px; }
            .countdown { font-size: 18px; }
        }
    </style>
</head>
<body>
    <div class="container">
        <div class="icon">🛠️</div>
        <h1>系统正在维护升级</h1>
        <p>系统维护升级期间,网站将暂时无法访问</p>
    </div>
</body>
</html>

三、命令

bash 复制代码
# 检查配置文件语法
nginx -t

# 重载配置
nginx -s reload

# 开启维护模式,拦截用户请求
touch /var/www/maintenance.enable


# 关闭维护模式,恢复用户访问
rm -f /var/www/maintenance.enable
相关推荐
月落汀兰2 小时前
建池后类型不可修改!深度拆解 Ceph PG 放置组,副本 / 纠删码池选型,快照与命名空间避坑
运维·ceph
技术人生0013 小时前
VMware Workstation 安装 Ubuntu 24.04 LTS 完整教程
运维·服务器·ubuntu
智能运维指南4 小时前
从分散运维到统一运维:2026 统一运维管理体系建设路径与选型要点
运维·一体化运维·智能运维·嘉为蓝鲸
ITyunwei09874 小时前
ITIL 5 落地前,先补齐工单数据底座的 4 步
运维·企业微信
实点科技4 小时前
远程IO模块的柜外安装:装在什么位置、防尘罩怎么选配
运维·服务器·网络
云计算-Security4 小时前
AI 赋能运维:UniRack 主机纳管平台的架构与实践
运维·人工智能·架构
青梅味猪大肠5 小时前
【操作系统-26】进程互斥软件实现-Peterson算法
linux·运维·服务器
分布式存储与RustFS5 小时前
在 Kubernetes 里跑对象存储的三个方案:Helm、Operator、以及什么时候别用 K8s
运维·云原生·开源·对象存储·分布式存储·s3·性能基准
怪力左手5 小时前
docker+qemu创建镜像
运维·docker·容器