在 2012年5月30日 上午11:29,G_will <gwil...@gmail.com> 写道:
> 在 2012年5月30日 上午10:14,liseen <lise...@gmail.com>写道:
>> 2012/5/27 刘太华 <de...@gmail.com>
>>>
>>> 后面说得方案,已经是可以从req limit角度做到了。ngx 有现成的req limit和conn
>>> limit模块,超过部分用error_page内部跳转,然后302到cdn,这样应该可行.
>>
>>
>> 我觉得这个是正解, 呵呵
>
>
> 嗯,准备去实现了,就是让nginx获取实时网速不是很容易,现在是用python脚本去读snmp,算出网速,然写到redis里,nginx里用这个值做判断。
>
> 再配合limit_rate限速。这样就达到目标了。
>
参考: Nginx简单的防盗链和带宽限制 | Jansfer - 长风破浪会有时,直挂云帆济沧海
http://www.82cs.com/201012/07/nginx-simple-anti-hotlinking-and-bandwidth-constraints/
等等吧,识别带宽的方法,其实不少,只是如何可以简洁的作到,不简易,,
>>
>>
>>
>>>
>>>
>>> 在 2012年5月27日 下午2:03,G_will <gwil...@gmail.com>写道:
>>>
>>>> 大家帮忙看一下吧。确实很想知道是否可行。
>>>>
>>>> 在 2012年5月26日 下午11:47,G_will <gwil...@gmail.com>写道:
>>>>
>>>>> 我还想到一种思路:
>>>>>
>>>>> 机子出口带宽100M,也就是总下载速度能达到12M/s的样子。假设有50个人同时下载,那么每个人的速度大概是200多K/s,下载体验不错。
>>>>>
>>>>> 所以当同时下载人数超过50人的时候nginx就给请求跳转到其他机子,或者是CDN。
>>>>>
>>>>> 不知道这个思路是否合理、可行?
>>>>>
>>>>> 如果可行,那么同时下载人数用ngx_status种的哪个数值呢?是Active connections,还是Writing数?
>>>>>
>>>>> 而这些变量可以在ngx_lua脚本中直接读出来吗?或者用内部请求去获取变量?
>>>>>
>>>>> 期待各位大牛解答。。
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> 在 2012年5月24日 下午4:05,kindy <kin...@gmail.com>写道:
>>>>>
>>>>>> 是不是可以搞个频度控制,当触发频度控制就认为流量过大,
>>>>>> 把 403 转成 302 如何。
>>>>>>
>>>>>>
>>>>>> 2012/5/24 G_will <gwil...@gmail.com>
>>>>>>>
>>>>>>>
>>>>>>> 在 2012年5月24日 下午12:41,cnhack TNT <cnha...@gmail.com>写道:
>>>>>>>>
>>>>>>>> 带宽占用高的时候就别proxy_pass了,直接返回一个307转到CDN去吧
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> 现在简单配置了下载服务器404以后301到CDN去,(CDN文件比较全,同步到文件服务器中间有一个时间差,所以会出现CDN存在,下载服务器不存在的情况。)
>>>>>>> 现在的问题是,用什么工具配合Nginx,可以监控流量,做请求转发?
>>>>>>>
>>>>>>> 我能想到的方法感觉都比较繁琐。比如:
>>>>>>>
>>>>>>> 用一个定时任务(30秒跑一次)查询带宽,如果带宽超标,给redis一个键值1,没有超标为0,然后lua每次请求去查那个键,如果键值为1,触发301跳转。
>>>>>>> 这样感觉不太好。
>>>>>>>
>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> 2012/5/24 Weiqiang <lwei...@gmail.com>
>>>>>>>>>
>>>>>>>>> 看上去你们需要的是一个反向代理+带权重的负载均衡器
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> 可以用openresty放在前端做反向代理和负载均衡。用lua编写负载均衡的规则,比如说可以再shdict实现一个令牌桶,令牌够用的时候把proxy_pass的目的地址设置成内网地址,如果令牌不够了,则把目的地址设成CDN地址
>>>>>>>>>
>>>>>>>>> :-)
>>>>>>>>> 李伟强
--
人生苦短, Pythonic! 冗余不做,日子甭过!备份不做,十恶不赦!
俺: http://about.me/zoom.quiet
文字协议: http://creativecommons.org/licenses/by-sa/2.5/cn/