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
相关推荐
便利店102418 分钟前
边界与远程:墙、洞与加密通道
运维·服务器·防火墙·acl·nat
Zhang~Ling35 分钟前
Linux多线程互斥锁:从现象到原理解析
linux·运维·网络
KaiwuDB35 分钟前
KaiwuDB 运维实战 03:双副本仲裁节点部署与高可用实践
运维·时序数据库·raft·kaiwudb·数据库运维·双副本高可用·仲裁节点
三言老师10 小时前
K8s集群运行时自动化运维全覆盖落地实操(下)
linux·运维·服务器·网络
躺不平的理查德12 小时前
嵌入式 Linux 系统移植与 SD 卡量产镜像制作
linux·运维·服务器
一直走下去-明13 小时前
centos7无法安装tcpreplay
linux·运维
IT大白鼠13 小时前
n8n工作流自动化平台技术架构与应用价值评估
运维·架构·自动化·n8n
anxiao_m14 小时前
园区数字孪生怎么搭建?主流方案与服务商深度对比
大数据·运维·人工智能
时空无限14 小时前
ubuntu dpkg -l 输出第一列解释
linux·运维·ubuntu
Splashtop高性能远程控制软件14 小时前
AI 落地的连接基建评估:消费品行业远程连接方案的四个技术维度(性能 / 精度 / 安全 / 统一管理)
运维·人工智能·安全·远程工作·splashtop