我开始一个小型networking托pipe公司来教我关于系统pipe理,我遇到的问题之一是如何限制每个虚拟主机(Debain / nginx)的带宽和磁盘空间? 还是我以错误的方式去做,不应该使用虚拟主机?
我用mod_bandwidth来限制带宽。 它可以用于每个目录,每个文件等…所以,你只需要configuration每VirtualHost。
对于磁盘空间,只需使用配额。 为每个客户创build一个unix帐户,并为其分配配额。 这应该是相当有据可查的networking。
一些快速的谷歌search向我显示,你可以使用Squid代理来设置名为“数据池”的数据队列。 你显然也可以使用IPROUTE2和TC(不能发布链接,我不够棒)
从http://www.faqs.org/docs/Linux-HOWTO/Bandwidth-Limiting-HOWTO.html#AEN65
除了正常的caching,Squid还有一个特殊的function叫做延迟池。 由于延迟池,有可能以合理的方式限制互联网stream量,这取决于任何给定URL中存在的所谓“魔术字”。 例如,一个魔术字可以是“.mp3”,“.exe”或“.avi”等。URL的任何不同部分(如.avi)都可以定义为魔术字。
另请参阅serverwatch.com上的一篇文章,名为Reining-in-Bandwidth-With-Squid-Proxying
鱿鱼可能是最简单的方法,你也可以用它做很多其他很酷的事情。
它并不简单。 我怀疑这是不可能的,只是使用虚拟主机强制执行限制,除非你把一个脚本代理放在networking服务器前(除了限制file upload到一个脚本化的网页界面外,它只解决带宽问题)。
但从商业的angular度来看,更确切地说,出售一个包含X带宽和Y磁盘使用率的软件包,然后向客户收取过多的费用(您可以从磁盘占用空间和访问日志轻松测量)。
C。
要限制总带宽使用,请参阅KikoV答案,我正在讨论限制磁盘空间。
实际上没有办法限制磁盘空间,但是你有两个select: