专业网站建设品牌,十四年专业建站经验,服务6000+客户--广州京杭网络
免费热线:400-963-0016      微信咨询  |  联系我们

在Nginx里如何限制并发和IP访问频率

当前位置:网站建设 > 技术支持
资料来源:网络整理       时间:2023/2/14 1:18:07       共计:3648 浏览

Nginx 是我们常用的负载均衡和反向代理服务器,并发性能非常优秀。但是在并发量极大的情况下,必要限流措施还是需要的,Nginx 的有对应的模块插件可通过简单配置来完成这个功能。



限制并发

限制ip并发数,也是说限制同一个ip同时连接服务器的数量。

1、添加limit_conn_zone

这个变量只能在http使用。

http{

...

#定义一个名为one的limit_zone,大小10M内存来存储session,

#以$binary_remote_addr 为key

#nginx 1.18以后用limit_conn_zone替换了limit_conn

#且只能放在http作用域

limit_conn_zone $binary_remote_addr zone=one:10m;

2、添加limit_conn

这个变量可以在http, server, location使用。只限制一个站点,所以添加到server里面。

server{

...

location {

...

limit_conn one 20; #连接数限制

#带宽限制,对单个连接限数,如果一个ip两个连接,就是500x2k

limit_rate 500k;

...

}

...

}

3、重启Nginx。



限制IP访问频率

限制同一个ip在一段时间里连接服务器的次数,可以一定程度上防止类似CC这种快速频率请求的攻击。

1、添加limit_req_zone

这个变量只能在http使用

http{

...

#定义一个名为allips的limit_req_zone用来存储session,大小是10M内存,

#以$binary_remote_addr 为key,限制平均每秒的请求为5个,

#1M能存储16000个状态,rete的值必须为整数,

#如果限制两秒钟一个请求,可以设置成30r/m

limit_req_zone $binary_remote_addr zone=allips:10m rate=5r/s;

...

2、添加limit_req

这个变量可以在http, server, location使用。只限制一个站点,所以添加到server里面。

3、重启Nginx。

上面两种配置,注意看注释,比较实用。

版权说明:
本网站凡注明“广州京杭 原创”的皆为本站原创文章,如需转载请注明出处!
本网转载皆注明出处,遵循行业规范,如发现作品内容版权或其它问题的,请与我们联系处理!
欢迎扫描右侧微信二维码与我们联系。
·上一条:在Nginx中如何只限制百度等蜘蛛的抓取频率? | ·下一条:C#去除图片水印之马赛克解决方案

Copyright © 广州京杭网络科技有限公司 2005-2025 版权所有    粤ICP备16019765号 

广州京杭网络科技有限公司 版权所有