Nginx限制下载连接的设置
编辑nginx.conf配置文件
在http{}里面,加上这句:
1.添加limit_zone
这个变量只能在http使用
[root@10.10.90.97? ~]# vi /usr/local/nginx/conf/nginx.conf
limit_zone one $remote_addr 10m;
2.添加limit_conn
这个变量可以在http, server, location使用
[root@10.10.90.97? ~]# vi /usr/local/nginx/conf/nginx.conf
limit_conn?? one 10;
3.重启nginx
killall -HUP nginx
?
nginx限速
?
nginx可以通过HTTPLimitZoneModule和HTTPCoreModule两个组件来对目录进行限速。
http {
? limit_zone?? one? $binary_remote_addr? 10m;?
? server {
??? location /download/ {
????? limit_conn?? one? 1;
????? limit_rate 300k;
??? }
? }
}
limit_zone:?????? 是针对每个IP定义一个存储session状态的容器.这个示例中定义了一个10m的容器,按照32bytes/session, 可以处理320000个session。
limit_conn one 1:限制每个IP只能发起一个并发连接。
limit_rate 300k: 对每个连接限速300k. 注意,这里是对连接限速,而不是对IP限速。如果一个IP允许两个并发连接,那么这个IP就是限速limit_rate×2。
关于limit_rate和limit_conn:http://wiki.nginx.org/NginxHttpCoreModule
------------------------------------------------------对于nginx而言,本身也有简单的防盗链模块ngx_http_referer_module,配置比较简单,定义文件类型:
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ {
????? valid_referers none blocked server_names *.163.com 163.com baidu.com;
????? if ($invalid_referer) {return 403;}
??? expires????? 30d;
}
具体的可以参考这里:http://wiki.nginx.org//NginxHttpLimitZoneModule,同时还有一个第三的防盗链相关模块,ngx_http_accesskey_module:
location /download {
accesskey???????????? on;
accesskey_hashmethod md5;
accesskey_arg???????? "key";
accesskey_signature?? "mypass$remote_addr";
}
具体的使用方法:http://wiki.nginx.org//NginxHttpAccessKeyModule