Chr*_* W. 9 testing nginx buffering video-streaming
我们为我们网站上的用户提供定制的Flash/HTML5视频播放器.我目前正在为具有"次优"带宽的用户充实经验 - 基本上我们希望客户端代码能够检测由于过度缓冲导致的糟糕用户体验.我想在本地开发环境中测试这个"带宽不足"的处理代码.
有没有人知道在本地环境中模拟 "带宽不足" 的好技术用于测试目的?
更具体地说,我的本地浏览器连接到具有uWSGI,nginx和python/django实例的虚拟机,我希望能够在从这些系统传送内容时注入任意数量的延迟.(我主要关注的是使用nginx,它进行视频内容传输/流媒体).
编辑:开发环境是Mac OS X可能是相关的.
Chr*_* W. 16
只需使用nginx的配置.
虽然OS X Lion的网络链接调节器按预期工作,但当我真正只是尝试测试Web应用程序行为的一个子集 - 即慢速视频缓冲处理系统时,仍然很烦人.
因此,我发现在我的nginx.conf文件中设置速率限制更方便,例如:
location ~ /files/(.*\.(mp4|m4v|mov))$ {
...
limit_rate 50k; # <-- Limit download rate per connection to 50kbps
...
}
Run Code Online (Sandbox Code Playgroud)
编辑:请参阅nginx HttpCoreModule文档.
FreeBSD是Mac OS的祖先,所以你可以使用名为ipfw的内置强大防火墙.它可以用于许多不同的情况,例如模拟低带宽.使用您自己的IP地址环回(127.0.0.1)或远程服务器(在这种情况下为8.8.8.8).
我们对网络应用程序进行了视频采访,所以我想分享一下我们模拟不良连接的经验,见下面的例子:
$ sudo su
$ ipfw show
$ ipfw pipe 1 config delay 600ms bw 256kbit/s
$ ipfw add pipe 1 dst-ip 8.8.8.8 dst-port 80
$ ipfw flush
Run Code Online (Sandbox Code Playgroud)
ipfw管道允许您使用延迟,bw甚至概率模拟数据包丢失来模拟缓慢和不稳定的连接.