技术分享

金山云 > 云计算 > Nginx服务器限速功能(一)

Nginx服务器限速功能(一)

发布时间: 2020-01-17 18:01:01


这个功能用来限制用户在某此时间段内请求的的HTTP请求数,此请求应该是 GET 或POST 来发出的请求。


这个限速功能常常被应用于网络安全方面。比如减慢暴力密码破解的攻击,爬虫对网页的抓取,防止DDOS攻击等。通过它来限制和过滤为为真实用户的标准数值,它会把来源URL等信息写到系统日志中。更确切地说,这个功能常用于提供极少量的应用服务器,用户访问量不多,但却常常瘫痪的问题。


在本文中,我们将详细介绍Nginx的速率限制基础及更高级的配置。值得一提的是,Nginx限速的工作原理与Nginx Plus相同。


Nginx限速是怎样工作的


Nginx限速使用 Leaky(唝水桶)算法,比喻为水桶顶部倒水,底部漏水,如果倒入水的速率超过漏水的速度,则水桶漏出。在电信网络和分组交换网络中,带宽有限的情况下该算法使用场景较多。


就请求处理而言,水代表客户端的请求,存水的桶按先进先出(FIFO)调度算法处理的队列。漏出的水表示退出缓冲区等服务器处理,而溢出表示请被丢弃且不再提供服务。


配置基本的速率限制


速率限制主要有2个主要指令,limit_req_zone和limit_req。如下代码:


limit_req_zone指令定义了速度限制的参数,同时在出现的上下文中启用速率限制。(在本例中是针对于 /login/ URI的所有请求)


limit_requ_zone 指令通常定义在HTTP块中,这样可以用于多个上下文。它包含3个参数:


Key - 定义应用限制的请求特征。 在这个例子中,它是Nginx变量$binary_remote_addr ,它保存着客户端IP地址的二进制表示。 这意味着我们将每个唯一的IP地址限制为由第三个参数定义的请求速率(我们使用这个变量,因为它比客户端IP地址的字符串表示$remote_addr占用更少的空间)。


Zone - 定义用于存储每个IP地址状态的共享内存区域以及访问请求受限URL的频率。 将信息保存在共享内存中意味着它可以在Nginx工作进程之间共享。


以上就是金山云为您带来的Nginx服务器限速功能(一)的相关内容,如果您还想了解更多Nginx服务器限速功能(一)的相关问题您可以点击页面中的链接进行具体了解。金山云提供云服务器,云主机,云存储,私有云,数据库,物理主机,RDS,KS3,SLB,KEC的全套产品服务,部分产品可以免费体验,而且会有定期的优惠、代金券等相关的活动。成立7年来,金山云始终坚持以客户为中心的服务理念,提供安全、可靠、稳定、高品质的云计算服务。以上是对Nginx服务器限速功能(一)相关介绍,如果觉得对您有帮助可以收藏。欢迎随时查看。

以上就是金山云为您带来的云计算的全部内容,如果还想了解更多内容可访问金山云官网www.ksyun.com了解其它资讯。
*免责声明:部分文章信息来源于网络以及网友投稿,本网站只负责对文章进行整理、排版、编辑,是出于传递更多信息之目的,并不意味着赞同其观点或证实其内容的真实性。如本站文章和转稿涉及版权等问题,请作者在及时联系本站,我们会尽快处理。