作为一台ftp服务器,当有很多用户(CP)进行文件上传的时候,在一定的服务器带宽的情况下,需要对ftp用户进行限速,下面进行详细解释。
第一,那些都是本地用户,限速方法为:
在/etc/vsftpd/vsftpd.conf中增加:user_config_dir=/etc/vsftpd/userconf。
第二,然后再创建目录/etc/vsftpd/userconf/,最后在这个目录下创建需要限速的用户文件,文件名为用户名,比如yangkai,在里面加入一行“local_max_rate=400000”,则yangkai的上传下载速度极限值为400k。也可以设置权限,比如加入“write_enable=no”,设置只读权限。
第三,全部本地用户限速:在/etc/vsftpd/vsftpd.conf中增加local_max_rate=400000,可以限制全部本地用户。 如果限制匿名用户的速度,则加入anon_max_rate=400000。
提问:说为什么我不是使用第三点介绍的方法限速呢?
解释:前段时间看过一篇评价铁道部订票网站的那篇文章,提到“业务需求决定系统架构,脱离需求的分析、评论,都是没有意义的”,大概是这意思,具体的我记不清楚了,因为我们的数据流向为:CP上传>平台处理>发布至华为流媒体服务器,与流媒体服务器之间的传输是内网,也是通过ftp,如果使用这个方法限速,那么影响业务了,客户会觉得我们太傻了。或者大家还会说是用其他方法与流媒体服务器之间数据传输,比如http,方法肯定是有的,但是你要双方改程序,这明显不靠谱,因为哥没那么大的权力!
总结:能满足客户需求的解决方案就是最好的解决方案,华丽的方案并不一定能让你得到别人的肯定。就算是做产品,首先肯定得搞清楚市场需求,然后设计产品,最后进行推广产品。
附录:vsftp.conf配置文件
- anonymous_enable=NO
- local_enable=YES
- write_enable=YES
- download_enable=YES
- local_umask=022
- dirmessage_enable=YES
- xferlog_enable=YES
- connect_from_port_20=YES
- chroot_list_enable=YES
- chroot_list_file=/etc/vsftpd.chroot_list
- chroot_local_user=YES
- listen=YES
- pam_service_name=vsftpd
- use_localtime=YES
- userlist_enable=YES
- userlist_deny=NO
- userlist_file=/etc/vsftpd.user_list
- tcp_wrappers=YES
- reverse_lookup_enable=NO
- pasv_enable=YES
- user_config_dir=/etc/vsftpd/userconf
- listen_address=124.75.29.37
#代码是什么意思我想就没必要我再去解释了,这是203ftp服务器的配置情况,在EditPlus里面,将#开头的行都去掉了,替换:^#.*\n ,^[ \t]*\n 。