avatar

瓜生花子八宝粥

少壮不努力 老了看浏览器

  • 首页
  • 开源项目
  • Linux
  • Windows
  • Docker
  • 中间件
  • 数据库
主页 Nginx 限制并发请求配置
文章

Nginx 限制并发请求配置

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

Nginx 并发请求限制配置指南

💡

Nginx 的限速模块可以有效地限制并发请求的数量,防止恶意流量或高峰期对服务器资源造成过度占用,从而提高网站的安全性和稳定性。本文将详细介绍如何使用 Nginx 的 limit_conn 和 limit_req 模块,以特定参数配置并发请求限制。

1. 参数说明

在本指南中,我们将使用以下参数进行配置:

  • 并发限制:60
    • 限制当前站点的最大并发请求数。
  • 单 IP 限制:10
    • 限制单个 IP 地址的最大并发请求数。
  • 流量限制:512 KB
    • 限制每个请求的流量上限(单位:KB)。

2. 配置并发请求限制

以下是针对上述参数的 Nginx 配置示例:

http {
    # 定义一个限制区域 addr,基于客户端 IP 地址($binary_remote_addr),存储空间大小为 10MB
    limit_conn_zone $binary_remote_addr zone=addr:10m;

    # 定义一个请求速率限制区域,基于客户端 IP 地址,每秒最多处理 60 个请求
    limit_req_zone $binary_remote_addr zone=req_limit:10m rate=60r/s;

    server {
        listen 80;  # 监听 80 端口
        server_name example.com;  # 修改为您的域名

        location / {
            # 限制每个 IP 地址的最大并发连接数为 10
            limit_conn addr 10;

            # 使用请求速率限制区域,并允许短时间内的请求突发(burst)数量为 20
            limit_req zone=req_limit burst=20;

            # 限制每个请求的流量上限为 512 KB
            client_max_body_size 512k;

            # 默认返回首页文件
            index index.html;

            # 自定义 503 错误页面
            error_page 503 /custom_503.html;
        }
        
        # 自定义错误页面的 location
        location = /custom_503.html {
            root /usr/share/nginx/html;  # 自定义错误页面存放路径
            internal;  # 仅允许内部重定向访问
        }
    }
}

配置说明

  • limit_conn_zone:定义一个基于客户端 IP 地址的限制区域,大小为 10MB。
  • limit_req_zone:创建一个基于客户端 IP 地址的请求速率限制区域,每秒最多处理 60 个请求。
  • limit_conn:设置每个 IP 地址的最大并发连接数为 10,超出限制将返回 503 状态码。
  • limit_req:允许短时间内的突发请求数量为 20,超出请求将被延迟或丢弃。
  • client_max_body_size:限制每个请求的流量上限为 512 KB。

3. 自定义错误页面

在配置中,我们添加了自定义的 503 错误页面。您可以根据需要创建自定义的 HTML 页面并将其放置在指定的路径中,例如 /usr/share/nginx/html/custom_503.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>
        body { text-align: center; padding: 150px; }
        h1 { font-size: 50px; }
        body { font: 20px Helvetica, sans-serif; color: #333; }
        article { display: block; text-align: left; width: 650px; margin: 0 auto; }
        a { color: #dc8100; text-decoration: none; }
        a:hover { color: #333; text-decoration: underline; }
    </style>
</head>
<body>
    <article>
        <h1>服务不可用</h1>
        <div>
            抱歉,您的请求过于频繁,请稍后再试。
        </div>
    </article>
</body>
</html>

4. 测试配置

完成配置后,您可以通过以下步骤测试 Nginx 的限速功能:

  1. 重新加载 Nginx 配置:

    sudo systemctl reload nginx
    
  2. 使用工具进行压力测试:

    您可以使用 ab(Apache Benchmark)或 siege 等工具进行压力测试。例如,使用 ab:

    ab -n 100 -c 10 http://example.com/
    

    这将模拟 100 个请求,最多同时 10 个并发连接。

  3. 观察 Nginx 日志:

    检查 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 常用HTTPS配置模板

上一篇

Nginx 限制访问时间段配置

最近更新

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

热门标签

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

目录

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

使用 Halo 主题 Chirpy