Nginx实现一个IP访问总流量限制
在 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访问总流量限制相关推荐
- Nginx 禁止某 IP 访问
导语 总有一些不怀好意的人来访问我的网站,而且频率还很高,所以就用简单的方式禁止访问,就用 Nginx 来实现. 创建黑名单 在 /usr/local/nginx/conf 目录下创建 blocksi ...
- 用 Nginx 禁止国外 IP 访问我的网站....
点击关注公众号,实用技术文章及时了解 作者:运维小弟 www.toutiao.com/i6860736292339057156 前言 先来说说为啥要写这篇文章,之前小编看了下nginx 的访问 ...
- 用Nginx禁止国外IP访问我的网站...
点击上方蓝色"终端研发部",选择"设为星标" 学最好的别人,做最好的我们 作者:运维小弟 出处:toutiao.com/i6860736292339057156 ...
- 用 Nginx 禁止国外 IP 访问我的网站...
你已选中了添加链接的内容点击上方"芋道源码",选择"设为星标" 管她前浪,还是后浪? 能浪的浪,才是好浪! 每天 8:55 更新文章,每天掉亿点点头发... 源 ...
- 京东一面,面试官问我如何用 Nginx 禁止国外 IP 访问网站,我直接凉凉!
程序员的成长之路 互联网/程序员/技术/资料共享 关注 阅读本文大概需要 4 分钟. 来自:toutiao.com/i6860736292339057156/ 之前看了下 Nginx 的访问日志,发现 ...
- 京东一面:Nginx 禁止国外 IP 访问网站!
点击上方蓝色字体,选择"标星公众号" 优质文章,第一时间送达 来源:toutiao.com/i6860736292339057156 先来说说为啥要写这篇文章,之前小编看了下ngi ...
- 如何用 Nginx 禁止国外 IP 访问网站!
之前看了下 Nginx 的访问日志,发现每天有好多国外的 IP 地址来访问我的网站,并且访问的内容基本上都是恶意的.因此我决定禁止国外 IP 来访问我的网站. 想要实现这个功能有很多方法,下面我就来介 ...
- nginx禁止高频ip访问
有时候我们会通过在一定时间内ip访问次数来判断用户是否恶性访问,来达到防刷的目的,下面借用nginx模块来限制. nginx模块限制ip #nginx.confhttp{...limit_req_zo ...
- Nginx禁止使用IP访问
一.环境介绍 我们在使用的时候会遇到很多的恶意IP攻击,这个时候就要用到Nginx 禁止IP访问了.在比如别人通过ip或者未知域名访问你的网站的时候,你希望禁止显示任何有效内容,可以给他返回500.目 ...
最新文章
- 深度学习Pytorch框架Tensor张量
- __attribute__ ((packed))
- SPOJ - PHRASES Relevant Phrases of Annihilation —— 后缀数组 出现于所有字符串中两次且不重叠的最长公共子串...
- 第五章、寻找满足条件的两个或多个数
- Java笔记-ReadWriteLock与Condition的使用
- 敏捷 - #1 原则:早期和持续交付有价值的软件 (#1 Agile Principle)
- spring boot 邮件端口_springboot集成qq邮件发送功能
- Shell账户管理,用户和组管理
- mysql 模糊匹配 拆字_一文,5 分钟搞明白 MySQL 是如何利用索引的!
- MASM32编程将TimeStamp/UTC转换为具体日期时间的几个有用函数代码
- [环境搭建]Windows下安装Ruby和Jekyll
- MFC的坐标转换GetClientRect/GetWindowRect/ClientToScreen/GetCursorPos/ScreenToClient
- 百度地图API去掉百度logo信息等
- 使用Robot Framework做接口测试
- connecting to host: cephm resulted in errors: IOError cannot send (already closed?)[ceph-deploy部署报错]
- 【练习赛】2022年高教杯数学建模C题(第一题的第二小问)
- VS2015官方下载地址(个人免费版)
- mysql在购物车中的应用_ajax在购物车中的应用
- Android:修改电池容量
- Nginx支持TCP端口转发