好记性不如烂笔头,学到的东西还是写下来记得牢,忘记了也好再查找.
今天学到如何在nginx中限制单一IP的连接数和连接速度,这个在攻击和防迅雷还是挺有用的,记下!
限速使用 limit_zone, limit_conn 以及 limit_rate 进行配置
首先在 http 段配置一个 limit_zone,
然后在需要的地方使用 limit_conn 和 limit_rate 进行限速设置,
如下一个简单的例子:
对/files/ 目录,设置同一IP允许最多2个并发连接,每个连接限速20K(160kbps)
- http {
- limit_zone one $binary_remote_addr 10m;
- server {
- location /files/ {
- limit_conn one 2;
- limit_rate 20k;
- }
- }
- }
说明:
limit_zone,是针对每个IP定义一个存储session状态的容器。这个示例中定义了一个名叫one的10m大小的容器,这个名字会在后面的limit_conn中使用。
$binary_remote_addr 就是客户端的IP了。直接这样写就行了。
limit_conn one 2;
限制在one中记录状态的每个IP只能发起2个并发连接。
limit_rate 20k;
对每个连接限速20k.
注意,这里是对连接限速,而不是对IP限速。
在这个例子里面,一个IP允许2个并发连接,
那么这个IP就是限速为limit_rate×2为40K
就是说,如果用户单线程下载,最大速度就是20K,
多线程下载,最大速度就是40K。
开三线程的话,最后一个线程会得到503的提示。
这里的K是KB。 Byte.
以上内容大部分为转载,原地址 http://www.zhaokunyao.com/archives/630
还有这么一个功能,还真没有注意研究过 Nginx 的所有模块。
HI,VPS的FTP连接不上,你检查一下呢。呵呵
好了,VPS重启后我忘记把FTP重新开起来了.你有什么问题可以直接给我发邮件的,立刻就能收到.
恩,这样好,有利于保证资源的使用。。
新年快乐!
嗯,新年快乐,新年新开始!