本章收錄了一些「方便菜譜」,希望能夠幫你解決實際問題。 方便菜譜不能代替理解原理,所以你還是應該著重領會其內在道理。
1. 用不同的SLA運行多個網站。
你有很多種方法實現這個。 HTTP://www.aliyun.com/zixun/aggregation/14417.html">Apache的有些模組可以支援這個功能,但是我們會讓你看看Linux如何處理這個問題,並能夠提供其它多種服務的。 這些命令都是從Jamal Hadi 的演示中偷學來的。
比如說11545.html">我們有兩個顧客,需要HTTP、ftp和音訊流服務,我們需要向他們出售一定量的頻寬。 我們在伺服器上這麼做。
A顧客應該擁有最多2Mbps的頻寬,B顧客則交了5M的錢。 我們在伺服器上分配不同的IP位址來區分它們。
# ip address add 188.177.166.1 dev eth0
# ip address add 188.177.166.2 dev eth0
給伺服器賦予那些IP位址完全取決於你。 當前所有的守護程式都支援這個特性。
我們首先往eth0上附加一個CBQ佇列規定:
# tc qdisc add dev eth0 root handle 1: cbq bandwidth 10Mbit cell 8 avpkt 1000 \
mpu 64
為我們的顧客創建類:
# tc class add dev eth0 parent 1:0 classid 1:1 cbq bandwidth 10Mbit rate \
2MBit avpkt 1000 prio 5 bounded isolated allot 1514 weight 1 maxburst 21
# tc class add dev eth0 parent 1:0 classid 1:2 cbq bandwidth 10Mbit rate \
5Mbit avpkt 1000 prio 5 bounded isolated allot 1514 weight 1 maxburst 21
然後為我們的客戶添加篩檢程式:
##求助: Why this line, what does it do?, what is a divisor?:
##求助: A divisor has something to do with a hash table, and the number of
## buckets - ahu
# tc filter add dev eth0 parent 1:0 protocol ip prio 5 handle 1: u32 divisor 1
# tc filter add dev eth0 parent 1:0 prio 5 u32 match ip src 188.177.166.1
flowid 1:1
# tc filter add dev eth0 parent 1:0 prio 5 u32 match ip src 188.177.166.2
flowid 1:2
做完了。
求助: why no token bucket filter? is there a default pfifo_fast fallback somewhere?