avatar

瓜生花子八宝粥

少壮不努力 老了看浏览器

  • 首页
  • 开源项目
  • Linux
  • Windows
  • Docker
  • 中间件
  • 数据库
主页 Nginx 限制访问时间段配置
文章

Nginx 限制访问时间段配置

发表于 2024-12-3 更新于 2024-12- 3
作者 jepwei
17~22 分钟 阅读

Nginx 限制访问时间段配置指南

在本指南中,我们将介绍如何在 CentOS 7 环境下使用 Nginx 配置访问限制,以返回特定时间段内的错误页面。我们将详细说明如何实现以下功能:

  • 限制特定时间段(22:00-24:00 和 00:00-08:00)的访问,返回 HTTP 403 状态码。
  • 在特定时间点(如 00:00、01:00、05:00 和 14:00)返回维护页面。

1. 限制时间段返回 403

以下是 Nginx 配置示例,用于限制访问在 22:00-24:00 和 00:00-08:00 的时间段,返回 403 状态码:

server {
    listen       80;
    server_name  localhost;

    # 获取本地时间
    if ($time_local ~ "^(\d+)\/(\w+)\/(\d+):(\d+):(\d+):(\d+) \+(\d+)") {
        set $hour $4;  # 提取小时部分
    }

    # 指定时间黑名单,22:00-24:00 和 00:00-08:00,返回403
    if ($hour ~ ^(2[2-3]|0[0-7])$) {
        return 403;  # 返回403状态码
    }

    # 其他配置
}

配置说明

  • listen 80:Nginx 监听 80 端口,处理 HTTP 请求。
  • server_name localhost:指定服务器名称。
  • $time_local:获取本地时间。
  • set $hour $4:提取小时部分并存储在 $hour 变量中。
  • if ($hour ~ ^(2[2-3]|0[0-7])$):匹配 22:00-24:00 和 00:00-08:00 的小时,返回 403 状态码。
💡

如果要限制特定整点时间,可以使用以下配置:

if ($hour ~ 00|01|05|14) {
    # 处理特定时间点
}

2. 限制特定时间点返回维护页面

以下是 Nginx 配置示例,用于限制在特定时间点(如 00:00、01:00、05:00 和 14:00)返回维护页面:

server {
    listen       80;
    server_name  localhost;

    # 获取本地时间
    if ($time_local ~ "^(\d+)\/(\w+)\/(\d+):(\d+):(\d+):(\d+) \+(\d+)") {
        set $hour $4;  # 提取小时部分
    }

    # 指定时间点返回维护页面
    if ($hour ~ 00|01|05|14) {
        rewrite ^(.*)$ /maintenance.html break;  # 重写请求到维护页面
    }

    location = /maintenance.html {
        root /usr/share/nginx/html;  # 自定义维护页面存放路径
        internal;  # 仅允许内部重定向访问
    }

    # 其他配置
}

配置说明

  • rewrite ^(.*)$ /maintenance.html break:将匹配到的请求重写为 /maintenance.html,并停止处理后续规则。
  • location = /maintenance.html:指定维护页面的配置。
  • root /usr/share/nginx/html:设置维护页面的存放路径。
  • internal:表示该页面只能通过内部重定向访问,外部请求无法直接访问。

3. 维护页面示例

以下是一个简单的维护页面示例 maintenance.html,您可以根据需要进行修改:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>网站维护中</title>
    <style>
        body {
            font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
            background-color: #000;
            color: #fff;
            margin: 0;
            padding: 0;
            display: flex;
            justify-content: center;
            align-items: center;
            height: 100vh;
        }
        .maintenance-container {
            text-align: center;
        }
        .maintenance-message {
            margin-bottom: 20px;
            animation: fadeIn 1s ease;
        }
        .maintenance-message h1 {
            font-size: 36px;
            color: #fff;
            margin-bottom: 10px;
        }
        .maintenance-message p {
            font-size: 18px;
            margin: 0;
        }
        @keyframes fadeIn {
            from { opacity: 0; }
            to { opacity: 1; }
        }
    </style>
</head>
<body>
    <div class="maintenance-container">
        <div class="maintenance-message">
            <h1>网站维护中</h1>
            <p>对不起,网站正在进行维护,暂时无法访问。</p>
            <p>请在 09:00 至 21:00 之间再尝试访问,谢谢您的理解与支持。</p>
        </div>
    </div>
</body>
</html>

4. 测试配置

完成配置后,请按照以下步骤进行测试:

  1. 重新加载 Nginx 配置:

    sudo systemctl reload nginx
    
  2. 访问网站:

    在指定的时间段内访问您的网站,检查是否返回 403 状态码或维护页面。

  3. 查看日志:

    检查 Nginx 的访问日志和错误日志,确认配置是否生效:

    sudo tail -f /var/log/nginx/access.log
    sudo tail -f /var/log/nginx/error.log
    

完成

通过以上步骤,您已成功配置 Nginx 限制访问时间段和特定时间点的功能。这将帮助您在维护期间有效管理用户访问,提高网站的可用性和安全性。根据实际需求,您可以进一步调整时间段和时间点的设置。

中间件
Nginx
许可协议: 
分享

相关文章

5月 23, 2025

nacos 部署

环境:centos7 版本:nacos-2.3.2 部署方式:编译安装 1.安装jdk (自行安装) 2.下载nacos安装包并解压 3.配置nacos的配置文件 ### 注释掉原有的端口参数再添加这个 server.port=7200 ### 开启鉴权 nacos.core.auth.enable

12月 31, 2024

容器部署fastdfs

本文详细介绍了在Docker中部署FastDFS的步骤,包括创建工作目录、配置Docker Compose、启动服务、检查端口监听以及修改Nginx配置。首先,需在主机创建FastDFS工作目录并设置权限,然后编辑docker-compose.yml文件定义服务配置。接下来,通过docker-compose命令启动服务,并使用netstat命令确认端口监听情况。最后,若需调整Nginx的8888端口配置,可进入storage容器并编辑nginx.conf文件,完成后重启容器以应用更改。

12月 24, 2024

容器部署nacos

本文详细介绍了如何在 Docker 中部署 Nacos,包括前提条件和具体步骤。首先确保已安装 Docker,然后拉取 Nacos 镜像并创建必要的目录。接着设置目录权限,复制初始配置文件到本地,重新运行 Nacos 容器。最后,用户可以通过浏览器访问 Nacos 管理界面,并可选地启用鉴权。按照这些步骤,用户将能够成功在 Docker 上部署 Nacos,并根据需求进行进一步配置。

下一篇

Nginx 限制并发请求配置

上一篇

Nginx 限制地区访问

最近更新

  • 1panel 部署
  • jumpserver 堡垒机部署
  • ubuntu 设置时间显示为24小时制
  • pritunl vpn 部署
  • dockovpn 部署

热门标签

nacos openvpnas 资源分享 docker oracle mysql ubuntu 开源项目 虚拟化 Linux

目录

©2025 瓜生花子八宝粥. 保留部分权利。

使用 Halo 主题 Chirpy