WEB服务器限速

我们有台服务器位于BGP机房,BGP的带宽很贵,因此想对web服务器的80端口限一下速。服务器都是Linux,故可以用tc跟iptables结合来做这个工作。

脚本如下:

#!/bin/sh

# bw limit for port 80
# min and max bindwidth, MB
MIN=4
MAX=6

/sbin/iptables -t mangle -F
/sbin/tc qdisc del dev eth0 root
/sbin/tc qdisc add dev eth0 root handle 1:0 htb default 10
/sbin/tc class add dev eth0 parent 1:0 classid 1:10 htb rate ${MIN}mbps ceil ${MAX}mbps prio 0
/sbin/iptables -A OUTPUT -t mangle -p tcp –sport 80 -j MARK –set-mark 10
/sbin/tc filter add dev eth0 parent 1:0 prio 0 protocol ip handle 10 fw flowid 1:10

上述表示对eth0网卡的80端口进行限速,保证传输速率4MB,最大传输速率6MB。

运行这个脚本,再从web服务器下载,速率就得到控制了。

查看tc的配置:

/sbin/tc -s -d class show dev eth0

说明:本文参考了NixCraft的一篇文档

此条目发表在Common分类目录,贴了标签。将固定链接加入收藏夹。