Nginx 中,可以使用 ngx_http_limit_req_module 模块配合 ngx_http_limit_conn_module 模块实现基于 IP 的流量和连接数控制。具体来说,可以按照如下步骤实现限制 IP 访问总流量

http配置

http {limit_conn_zone $binary_remote_addr zone=conn_zone:10m;limit_req_zone $binary_remote_addr zone=req_zone:10m rate=5r/s;# 其他配置
}

在上面的配置中,limit_conn_zone 定义了一个名为 conn_zone 的共享内存区域,用于存储每个客户端 IP 的连接信息。limit_req_zone 定义了一个名为 req_zone 的共享内存区域,用于存储每个客户端 IP 的访问请求信息。

server配置

server {listen 80;server_name example.com;# 限制单个客户端 IP 最大连接数为 10limit_conn conn_zone 10;# 限制单个客户端 IP 1s 内最多发起 5 个请求limit_req zone=req_zone burst=5;# 计算客户端 IP 累计请求流量,限制累计请求流量为 1GBset $limit_rate 128k;limit_rate_after 500M;limit_rate 1m;# 其他处理逻辑
}

limit_conn 指令用于限制单个客户端 IP 的最大连接数,这里设置为 10
limit_req 指令用于限制单个客户端 IP 在 1s 内最多发起 5 个请求。
set 和 limit_rate 指令用于计算客户端 IP 自第一个请求开始的累计流量,并限制该流量不超过 1GB
set $limit_rate 128k; 表示每个请求的最大限速为 128KB/s
limit_rate_after 500M; 表示从第500MB开始限制速度;
limit_rate 1m; 表示限制速度为 1MB/s

通过以上配置,就可以实现对每个客户端 IP 的连接数和请求流量的综合限制。需要注意的是,在实际使用时应该根据服务器性能、访问流量等实际情况进行合理的配置。限制过严可能会影响正常业务,限制过松则无法达到限流效果。

Nginx实现一个IP访问总流量限制相关推荐

  1. Nginx 禁止某 IP 访问

    导语 总有一些不怀好意的人来访问我的网站,而且频率还很高,所以就用简单的方式禁止访问,就用 Nginx 来实现. 创建黑名单 在 /usr/local/nginx/conf 目录下创建 blocksi ...

  2. 用 Nginx 禁止国外 IP 访问我的网站....

    点击关注公众号,实用技术文章及时了解   作者:运维小弟   www.toutiao.com/i6860736292339057156 前言 先来说说为啥要写这篇文章,之前小编看了下nginx 的访问 ...

  3. 用Nginx禁止国外IP访问我的网站...

    点击上方蓝色"终端研发部",选择"设为星标" 学最好的别人,做最好的我们 作者:运维小弟 出处:toutiao.com/i6860736292339057156 ...

  4. 用 Nginx 禁止国外 IP 访问我的网站...

    你已选中了添加链接的内容点击上方"芋道源码",选择"设为星标" 管她前浪,还是后浪? 能浪的浪,才是好浪! 每天 8:55 更新文章,每天掉亿点点头发... 源 ...

  5. 京东一面,面试官问我如何用 Nginx 禁止国外 IP 访问网站,我直接凉凉!

    程序员的成长之路 互联网/程序员/技术/资料共享 关注 阅读本文大概需要 4 分钟. 来自:toutiao.com/i6860736292339057156/ 之前看了下 Nginx 的访问日志,发现 ...

  6. 京东一面:Nginx 禁止国外 IP 访问网站!

    点击上方蓝色字体,选择"标星公众号" 优质文章,第一时间送达 来源:toutiao.com/i6860736292339057156 先来说说为啥要写这篇文章,之前小编看了下ngi ...

  7. 如何用 Nginx 禁止国外 IP 访问网站!

    之前看了下 Nginx 的访问日志,发现每天有好多国外的 IP 地址来访问我的网站,并且访问的内容基本上都是恶意的.因此我决定禁止国外 IP 来访问我的网站. 想要实现这个功能有很多方法,下面我就来介 ...

  8. nginx禁止高频ip访问

    有时候我们会通过在一定时间内ip访问次数来判断用户是否恶性访问,来达到防刷的目的,下面借用nginx模块来限制. nginx模块限制ip #nginx.confhttp{...limit_req_zo ...

  9. Nginx禁止使用IP访问

    一.环境介绍 我们在使用的时候会遇到很多的恶意IP攻击,这个时候就要用到Nginx 禁止IP访问了.在比如别人通过ip或者未知域名访问你的网站的时候,你希望禁止显示任何有效内容,可以给他返回500.目 ...

最新文章

  1. 深度学习Pytorch框架Tensor张量
  2. __attribute__ ((packed))
  3. SPOJ - PHRASES Relevant Phrases of Annihilation —— 后缀数组 出现于所有字符串中两次且不重叠的最长公共子串...
  4. 第五章、寻找满足条件的两个或多个数
  5. Java笔记-ReadWriteLock与Condition的使用
  6. 敏捷 - #1 原则:早期和持续交付有价值的软件 (#1 Agile Principle)
  7. spring boot 邮件端口_springboot集成qq邮件发送功能
  8. Shell账户管理,用户和组管理
  9. mysql 模糊匹配 拆字_一文,5 分钟搞明白 MySQL 是如何利用索引的!
  10. MASM32编程将TimeStamp/UTC转换为具体日期时间的几个有用函数代码
  11. [环境搭建]Windows下安装Ruby和Jekyll
  12. MFC的坐标转换GetClientRect/GetWindowRect/ClientToScreen/GetCursorPos/ScreenToClient
  13. 百度地图API去掉百度logo信息等
  14. 使用Robot Framework做接口测试
  15. connecting to host: cephm resulted in errors: IOError cannot send (already closed?)[ceph-deploy部署报错]
  16. 【练习赛】2022年高教杯数学建模C题(第一题的第二小问)
  17. VS2015官方下载地址(个人免费版)
  18. mysql在购物车中的应用_ajax在购物车中的应用
  19. Android:修改电池容量
  20. Nginx支持TCP端口转发

热门文章

  1. KAVA 恩,简单的脚本语言,HOHO
  2. 数据分析-pearson相关性分析
  3. maya中对UI操作的mel命令介绍
  4. SecureCRT的安装和使用
  5. 高并发每日学习【2020-09-28】
  6. C语言使用libpcap输出报文到pcap文件
  7. Android WebService 客户端 之 andriod ksoap2 WebService 复杂对象参数
  8. .NET Framework有什么用(详解)
  9. java毫秒日期_java 日期格式 毫秒
  10. 吴晓波直播翻车,直播乱象,直播带货走进“全网最低价”怪圈