- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章Nginx limit 限制访问模块的方法由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
Nginx 的 limit 模块用于限制 Nginx 的访问.
limit 模块包含有两个部分:
limit_conn 。
limit_conn 模块的实现比 limit_req 简单,直接对拥有相同变量值的连接进行计数,超过限制的连接返回 503 错误(Service Temporarily Unavailable).
实际上,由于某一时刻,一个连接上一般只有一个待处理请求,且由于 keepalive 和 phase 处理函数无法判断连接状态 (新连接还是老连接),limit_conn 将正在处理的请求数作为连接数使用.
这个模块包含以下部分:
limit_conn_zone 。
这个配置项用于指定连接数的计数空间.
1
2
3
4
5
6
7
8
|
# 语法
limit_conn_zone [$variable] zone=[zone-name]:[max-storage-space];
# 段
http
# 示例
limit_conn_zone $binary_remote_addr zone=conn_ip:1m;
|
limit_conn 。
这个配置项用于指定连接数上限.
1
2
3
4
5
6
7
8
|
# 语法
limit_conn [zone-name] [max-connections];
# 段
http, server, location
# 示例
limit_conn conn_ip 10;
|
limit_conn_status 。
可选项。该指令在 1.3.15 版本引入。指定拒绝请求时返回的 http code(状态响应码).
1
2
3
4
5
6
7
8
|
# 语法
limit_conn_status [http-code];
# 段
http, server, location
# 示例
limit_conn_status 502;
|
limit_req 。
与 limit_conn 不同的是,limit_conn 直接指定连接数上限,而 limit_req 通过 rate 参数对指定变量出现的速率(即频率)指定的上限进行限制.
这个模块包含以下部分:
limit_req_zone 。
这个配置项用于指定请求频率的计数空间.
1
2
3
4
5
6
7
8
9
|
# 语法
limit_req_zone [$variable] zone=[zone-name]:[max-storage-space] rate=[max-request-rate];
# 段
http
# 示例
# rate=1r/s 表示限制每秒只允许一次请求
limit_req_zone $binary_remote_addr zone=req_ip:1m rate=1r/s;
|
limit_req 。
这个配置项用于调用 limit_req_zone 指定的频率上限,以及可选的补充参数.
1
2
3
4
5
6
7
8
9
10
|
# 语法
# burst 可选项。后面接整数,表示最大允许超过频率限制的请求数
# nodelay 可选项。如果不希望超过的请求被延迟,可以使用 nodelay 参数
limit_req zone=req_ip (burst=[numbers]) (nodelay);
# 段
http, server, location
# 示例
limit_req zone=req_ip burst=5 nodelay;
|
limit_req_status 。
可选项。和 limit_conn_status 同理。指定拒绝请求时返回的 http code(状态响应码).
1
2
3
4
5
6
7
8
|
# 语法
limit_req_status [http-code];
# 段
http, server, location
# 示例
limit_req_status 502;
|
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我.
原文链接:https://sometimesnaive.org/article/32 。
最后此篇关于Nginx limit 限制访问模块的方法的文章就讲到这里了,如果你想了解更多关于Nginx limit 限制访问模块的方法的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
好吧,我对我的页面发生的事情有点困惑。我在底部有页码, table 上摆满了 23 种不同的元素。 每个页面应一次显示 5 个项目。我显示的页面发送了一个带有 pagenumber = 不管怎样的 g
几周前我开始学习 Ada。我知道 limited 在某些情况下声明了一个有限类型,不允许复制对象 来自 Ada Reference Manual 2012 7.5 1/2 A limited type
我想按 DESC 选择日期并限制为最后 3 个,然后我需要基本上翻转最后 3 个结果,以便它们按 ASC 排序 任何帮助将不胜感激,我正在使用 postgresql 最佳答案 SELECT * FRO
SELECT * FROM mm_tfs WHERE product_slug LIKE '%football%' AND schoolid = '8' AND category_id ='2
SELECT * FROM mm_tfs WHERE product_slug LIKE '%football%' AND schoolid = '8' AND category_id ='2
我正在尝试访问按“日期”键排序的表中恒定数量的最新文档。请注意,不幸的是,日期是被实现的(不是由我......),使得该值设置为字符串,例如“2014-01-14”,或者有时“2014-01-14 2
我目前正在使用具有限制 cpu、限制内存以及保留 cpu 和内存的 Docker Swarm。 完成测试后,我想删除这些配置。我找不到任何有关如何删除这些的文章。 是否有办法通过更新来删除这些设置而不
我目前正在使用具有限制 cpu、限制内存以及保留 cpu 和内存的 Docker Swarm。 完成测试后,我想删除这些配置。我找不到任何有关如何删除这些的文章。 是否有办法通过更新来删除这些设置而不
我必须对我的数据应用分页。我通过复杂的连接查询获取数据,没有任何子查询,只有简单的连接。 假设这个查询[这是一个非常简单的查询,我有一个比这个复杂的查询] SELECT states.state
我经常制作条形图,并将条形图的值额外包含为注释 (geom_text)。通常,我更喜欢这些值右对齐(与将标签放在条形顶部相反)。在绘制多面条形图时,我将这些值放在每个组中的最大值(我之前计算过)加上我
delivery-limit 和 x-delivery-limit 有什么区别? 当我将 x-delivery-limit 设置为 RabbitMQ 队列参数时,我可以看到它限制了我的消息重新排队尝试
delivery-limit 和 x-delivery-limit 有什么区别? 当我将 x-delivery-limit 设置为 RabbitMQ 队列参数时,我可以看到它限制了我的消息重新排队尝试
我正在使用 PostgreSQL 9.3。这应该在具有 100,000 多行的任何表上重现。 EXPLAIN ANALYZE 显示使用 LIMIT 2 扫描了更多行,但我不明白为什么。 限制 1: E
我正在尝试找出是否可以在 PHP 中全局设置和取消设置 MySQL 结果的默认限制。 一些可能看起来像的伪代码: $pdo->prepare('SELECT * FROM example'); $pd
我有下面的代码片段表 在这里我必须对投票前 3 个值求和。 假设 product_id 3030 vote 列的总和为 8.1 和 3671 总和 是 5.2 在这里,我必须获得前 3 个 produ
我正在使用全文搜索来提取行。 我根据分数 (ORDER BY SCORE) 对行进行排序,然后在前 20 行 (LIMIT 20) 中,我想对结果集进行兰德 (RAND)。 因此,对于任何特定的搜索词
帮助创建搜索条件 SELECT * FROM mlt_adr_city WHERE name LIKE "Text%" AND region_id = 59 AND id <> 0 IF (name
MySQL 查询示例: SELECT message_id, message_text FROM messages LIMIT 0 , 30 我得到的这个提示是错误的: HIN
我注意到如果我将查询限制为 1 个而不是 5 个,速度会急剧下降。 SELECT he. * FROM homematic_events he WHERE he.homematic_devices_i
我需要从我的表中获取最后一个 ID,以便我可以在另一个函数中使用它我在我的存储库中创建了这个函数,但我没有工作,它显示了一个错误: [Syntax Error] line 0, col 60: Err
我是一名优秀的程序员,十分优秀!