一般来说很多时候我们不需要用到带宽限制,这样做纯属纯无聊,做站的,想的就是要快,但有些人就喜欢折腾一番,有种“不到黄河心不死”的心情。此文章纯属觉得好玩就转载过来分享一下,小7觉得多学一些毕竟是好事,等你等到需要用的时候,才感慨到时我为什么不多学点啊,这句话相比以前你们的老师经常这样罗哩罗嗦的吧,废话不多说,方法如下:
本文以军哥LNMP一键包环境下测试的,主要修改有两处。
修改nginx默认配置文件,利用nginx的标准模块ngx_http_limit_zone_module,进行会话的并发连接数控制。
[task]View Code PHP
- #
cd /usr/local/nginx/conf
- #
vi nginx.conf
[/task]
在http{}添加如下:
?View Code PHP
limit_zone one $binary_remote_addr 10m;
[task]【说明】我们在nginx.conf中可以看到一行如下:
#limit_zone crawler $binary_remote_addr 10m;
开始,我只是去除了这行前面的#,解除注解,不过报错,crawler必须替换成one。关于上面这行添加的内容,他主要是定义一个叫“one”的记录区,总容量为 10M,以变量 $binary_remote_addr 作为会话的判断基准。
为了测试,我解析了一个域名,并在VPS中添加了这个域名主机。接下来,我们需要修改第二次,就是这个域名配置文件。
[/task]
#cd /usr/local/nginx/conf/vhost
#vi 域名.conf
添加一段:
?View Code PHP
location / {
limit_conn one 1;
limit_rate 500k;
}
这段表示每个客户端仅允许一个连接,限速为500KB/s。
全部修改之后,检查下配置文件和重载下nginx。
?View Code PHP
#/usr/local/nginx/sbin/nginx –t
#service nginx reload
大致上就是这样的,希望对需要的有一定的启发与帮助。