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
相关推荐
Decay__11 小时前
12_MySQL InnoDB 内存与锁调优 —— Buffer Pool、redo log、隔离级别与锁等待
运维·数据库·sql·mysql·架构
java_logo13 小时前
Docker 部署 Dify:轻松搭建 LLM 应用开发平台
运维·docker·容器
方便面不加香菜14 小时前
Docker Container -- 综合实战案例详解
运维·docker·容器
海洋之恒15 小时前
GitHub Actions 自动化:5 个真实运维提效案例
运维·自动化·github
迪康coolmu16 小时前
出差终端数据安全落地实战:基于迪康端点安全一体化管理系统的四道防线实践
运维·服务器·经验分享·笔记·其他·安全·php
qq_3718021119 小时前
Ubuntu Linux中安装WorkBuddy
linux·运维·服务器·ubuntu
逃逸线LOF20 小时前
服务网关Gateway
java·运维·gateway
分布式存储与RustFS21 小时前
OpenSearch 的索引快照别只留本地:用 repository-s3 存进 RustFS
运维·云原生·开源·对象存储·分布式存储·s3·性能基准
瑞克-桑切斯21 小时前
docker Harbor 单机部署手册
大数据·运维·elasticsearch·docker·容器