VPS优惠信息,美国VPS推荐,便宜VPS,国外VPS评测,美国VPS代购,VPS新手教程 - 好VPS之聚 - Nginx带宽限制
type: channel
link: https://vpsok.net/tag/Nginx%E5%B8%A6%E5%AE%BD%E9%99%90%E5%88%B6/
items: LNMP环境下Nginx带宽限制

LNMP环境下Nginx带宽限制
type: item
date: 2014-06-16T00:00:00+08:00
description: 最近研究下带宽限制，纯无聊，一则我也没有被看上的给人拼命拖数据的站，二则确实不知道玩什么了……Nginx下的带宽限制貌似比较简单，下面是我在两台VPS间的测试过程，测试机器用的是BlueVM的9.95美元年付OpenVZ，上个月手贱买的；用来拖数据的是DS2刀月付，很早很早以前花大价钱收来的啊，现在……遍地都是这种价位的！ 本文在军哥LNMP一键包环境下测试的，主要修改有两处。 修改nginx默认配置文件，利用nginx的标准模块ngx_http_limit_zone_module，进行会话的并发连接数控制。 1 2 #cd /usr/local/nginx/conf #vi nginx.conf 在http{}添加如下： 1 limit_zone one $binary_remote_addr 10m; 【说明】我们在nginx.conf中可以看到一行如下： #limit_zone crawler $binary_remote_addr 10m; 开始，我只是去除了这行前面的#，解除注解，不过报错，crawler必须替换成one。关于上面这行添加的内容，他主要是定义一个叫“one”的记录区，总容量为 10M，以变量 $binary_remote_addr 作为会话的判断基准。 为了测试，我解析了一个域名，并在VPS中添加了这个域名主机。接下来，我们需要修改第二次，就是这个域名配置文件。 1 2 #cd /usr/local/nginx/conf/vhost #vi 域名.conf 添加一段： 1 2 3 4 location / { limit_conn one 1; limit_rate 500k; } 这段表示每个客户端仅允许一个连接，限速为500KB/s。 全部修改之后，检查下配置文件和重载下nginx。 1 2 #/usr/local/nginx/sbin/nginx –t #service nginx reload 其实这里我遇到一点报错，如下图，不过貌似没影响效果。 根据他这行报错，我修改过nginx.conf，可是按照他写的修改，直接配置文件检测都不通过，如果您知道怎样这个可以怎样处理掉，还请不吝赐教。 弄好之后，我放了个100MB测试文件，下图是效果，加了限制和不加限制的对比明显。 【后记】这个限制呢，他有一定的用处，比如自己的下载资源站之类的，但是，这并不能完全的控制盗链之类问题，我们可以用他的防盗链模块如ngx_http_referer_module，或者ngx_http_accesskey_module等，我们可以分析日志，对$http_user_agent进行匹配，然后返回503等等。