• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

nginx限速之连接数限制技巧分享

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

前言

我们经常会遇到这种情况,服务器流量异常,负载过大等等。对于大流量恶意的攻击访问,会带来带宽的浪费,服务器压力,影响业务,往往考虑对同一个ip的连接数,并发数进行限制。nginx 内置模块限速怎么使用就不多说了,今天来说说连接数和单个连接数限速的事。话不多说了,来一起看看详细的介绍吧。

场景:

A公司有100人,A公司只有一个公网IP,假设A公司可能有100个人同时在下载你的网站文件。

但是,你的连接数限制配置为:

limit_conn_zone $binary_remote_addr zone=perip:1m;
server {
 ---
 limit_conn perip 1;
 limit_rate 1024k;
 ---
}

允许单个连接数,单个连接数最大带宽为1M。

这样就会有99个人的请求状态为 503, 其他人如果想下载就必须人工等待(nginx不会通知用户说A用户下载完了,该你B用户下载了)。这样造成的用户体验极差。但是优点也很明显,带宽很快就会降下来。

可能有人就要问了,你限制成很低的连接数是想搞事情?NO,绝对不是。前面的100个人同时下载网站资源的情况有多大呢?没做过统计,但是可能性极小。并且前端页面和下载资源不共用一个域名,所以不会影响到前端页面的访问。
那都是谁在大量使用连接数呢?分两类:

  • 下载工具类(迅雷)。
  • 各种各样的采集程序。
  • 同时进行多个下载任务。

小明快乐的在看电视,瞥了左边频幕一眼,握草,带宽又满了,来吧,限速吧,

limit_conn_zone $binary_remote_addr zone=perip:1m;
server {
 ---
 limit_rate 1024k;
 ---
}

小明做了如上限速,OK,我告诉你们谁被限速了,当然是浏览器下载用户,360浏览器的下载器都不一定能限制,好的,来算算速度吧。

浏览器: 2014K

下载器: 1024 * 15(最大连接数) * VIP

采集器: 1024 * 连接数

所以我们得到如下结论:

带宽有限,同个IP同时下载的情况很小的,或者说是可以预知的业务,尽量将连接数限制的小一点。

反之,别限制了。就降低单个连接数带宽吧!要知道大家谁没事会用浏览器自带下载器下载呢?

注:本文只探讨nginx限速模块在不同业务下的限速

彩蛋:偶尔发现,将连接数限制为1迅雷不能高速下载了。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对极客世界的支持。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
解读nginx中limit配置参数发布时间:2022-02-12
下一篇:
Nginx 解决WebApi跨域二次请求以及Vue单页面的问题发布时间:2022-02-12
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap