Nginx限制并发连接数与下载速度

ngx_http_limit_conn_module模块用于限制每个定义密钥的连接数,特别是来自单个IP地址的连接数。而ngx_http_core_module则可以限制下载速度,这两个均是Nginx内置模块,不需要额外安装。

Nginx限制并发连接数与下载速度

ngx_http_limit_conn_module限制连接数

#需要写在http段内
limit_conn_zone $binary_remote_addr zone=addr:10m;

server {
location /download/ {
        limit_conn addr 10;
}

$binary_remote_addr : nginx变量,指的是客户端IP
zone : 域的名字,随便填写,这里设置的是addr,后面会再次用到
10m : 设置共享内存我的理解是客户端的IP会被放入这个内存中,总共享内存不能超过10M,不知道对不对。
limit_conn addr 10 : 限制addr这个域的最大连接数为10

但是在HTTP/2中每个并发请求被视为单独的连接,如果网站启用了HTTP/2上面的设置就没有作用了,可以继续改进一下。以下配置将限制每个客户端IP与服务器的连接数,同时限制与虚拟服务器的连接总数。

#写在http段内
limit_conn_zone $binary_remote_addr zone=perip:10m;
limit_conn_zone $server_name zone=perserver:10m;

server {
    ...
    #限制perip域(客户端IP)的连接数为10
    limit_conn perip 10;
    #限制perserver域(当前虚拟服务器)的连接数为100
    limit_conn perserver 100;
}

更多详细说明可参考Nginx官方文档:http://nginx.org/en/docs/http/ngx_http_limit_conn_module.html

ngx_http_core_module限制下载速度

#数据达到100M后再限制速度(注意:这里指的是单个连接达到100M)
limit_rate_after 100M;
#限制单个连接速度为10k/s
limit_rate 10k;

limit_rate_after : 指的是请求的数据达到指定大小后才开始限速(这里设置的是100M)
limit_rate : 设置单个连接限速值,这里设置的是10k/s,如果限制同一IP最大连接数为10的话,那么总的下载速度不能超过100k/s

更多说明参考Nginx官方文档:http://nginx.org/en/docs/http/ngx_http_core_module.html#limit_rate

同时限制连接数和下载速度
将上面的配置整合一下,我们既要限制单IP的最大连接数,也需要限制下载速度。

#写在http段内
limit_conn_zone $binary_remote_addr zone=perip:10m;
limit_conn_zone $server_name zone=perserver:10m;

#写在server段内
limit_conn perip 10;
limit_conn perserver 100;
limit_rate_after 100M;
limit_rate 10k;

上面配置的含义是限制单个IP最大连接数为10个,同时限制单个虚拟服务器的连接总数为100个。当请求的数据达到100M后(指单个连接达到100M)限制连接速度为为10k/s,如果产生了10个连接,最大速度不能超过100k/s

写在最后
配置修改后建议用nginx -t先检查语法,确保没有问题,别忘记重载Nginx使其生效。

转载作品,原作者:小z博客,文章来源:https://www.xiaoz.me/archives/12516

(0)
打赏 微信赞赏 微信赞赏 支付宝赞赏 支付宝赞赏
上一篇 2021-12-03 11:21
下一篇 2021-12-07 09:59

相关推荐

  • Nginx如何防止DDoS(分布式拒绝服务)攻击

    为了防止DDoS(分布式拒绝服务)攻击,你可以采取一系列措施来增强Nginx服务器的安全性。以下是一个综合性的方案,旨在减少DDoS攻击的风险,并提升服务器的安全性和稳定性

    2024-09-18
    1980
  • Nginx 加强 WordPress 防护的规则

    Nginx+ WordPress 的组合是目前非常普及的组合了,我们完全可以借助 Nginx 规则来加强 WordPress 的防护,提高 WordPress 的安全性,分享自用的 Nginx 针对 WordPress 的防护规则,部分规则大家只需要根据自己的需要进行调整即可。

    2024-03-07
    2041
  • Nginx学习笔记(09) rewrite模块中的return指令

    Nginx学习笔记-rewrite模块中的return指令

    Linux 2021-11-23
    3351
  • nginx站点开启http/3 提升网站速度与安全性

    HTTP/3作为最新的网络协议,通过采用QUIC传输层协议,进一步提升了网页传输的效率和安全性。相比HTTP/2,HTTP/3在网络连接速度、可靠性和安全性方面具有显著优势。因此,开启HTTP/3成为许多站长优化网站性能的重要步骤。本文将介绍HTTP/3的基本概念、优势,以及如何在NGINX站点上开启HTTP/3以提升网站的速度与安全性。

    2024-10-29
    1800
  • nginx根据客户浏览器语言跳转不同的页面

    nginx根据客户浏览器语言跳转不同的页面,该代码首先使用 map 指令将客户端的 Accept-Language HTTP 头部映射到一个变量 $lang,然后使用 if 指令在不同的语言设置下进行重定向。

    2024-01-16
    2470
  • 超强大的 Nginx 可视化管理平台 Nginx-Proxy-Manager 中文入门指南

    nginx-proxy-manager 是一个反向代理管理系统,它基于 NGINX,具有漂亮干净的 Web UI。还可以获得受信任的 SSL 证书,并通过单独的配置、自定义和入侵保护来管理多个代理。

    2024-07-03 Linux
    3170

发表回复

登录后才能评论
扫码了解
扫码了解
分享本页
返回顶部