如果你是用Apache Web Server自己架站,而且對外頻寬又不大的話,是否常因為對外頻寬被你架設的網站使用完,而造成你整各網路都很慢呢?
這時你就需要使用Apache的一個模組 mod_bw(mod_bandwidth)。它可以讓Apache 來控制管理你的頻寬,才不會導致對外(Up Bandwith)頻寬被用完,連帶影響對內(Down Bandwith)頻寬也變慢。
首先到https://bwmod.sourceforge.net/下載符合你作業平台的Bandwidth Mod(mod_bw)版本。
PS.目前 Bandwidth Mod 0.7已經支援Apache 2.0版。
Linux 安裝方式(Linux Install)
1.下載最新版本
root# wget https://bwmod.sourceforge.net/files/mod_bw-0.7.tgz
2.解壓縮檔案,並到解開的目錄中
root# wget https://bwmod.sourceforge.net/files/mod_bw-0.7.tgz
root# tar -vfxz mod_bw-0.7.tgz
root# cd mod_bw-0.7
root# tar -vfxz mod_bw-0.7.tgz
root# cd mod_bw-0.7
3.修改mod_bw 0.7的bug:
由於mod_bw 0.7在編譯時有各bug,會導致在安裝後出現apr_atomic_add找不到的錯誤,所以要修改mod_bw.c
將原本的:
/* Compatibility for ARP < 1 */
#if (APR_MAJOR_VERSION < 1)
#define apr_atomic_inc32 apr_atomic_inc
#define apr_atomic_dec32 apr_atomic_dec
#define apr_atomic_add32 apr_atomic_add
#define apr_atomic_cas32 apr_atomic_cas
#define apr_atomic_set32 apr_atomic_set
#endif
改成:
/* Compatibility for ARP < 1 */
/*
#if (APR_MAJOR_VERSION < 1)
#define apr_atomic_inc32 apr_atomic_inc
#define apr_atomic_dec32 apr_atomic_dec
#define apr_atomic_add32 apr_atomic_add
#define apr_atomic_cas32 apr_atomic_cas
#define apr_atomic_set32 apr_atomic_set
#endif
*/
4.執行模組安裝
root# apxs -i -a -c mod_bw.c
這時就會安裝到你的Apache的模組裡,並且http.conf也已經自動加上了:
LoadModule bw_module modules/mod_bw.so
5.編輯http.conf,並在你要控制頻寬的目錄中加上:
<Directory "/">
# Limit BW usage
BandWidthModule On
ForceBandWidthModule On
#開放20KB對外使用
Bandwidth all 20480
#每個Connection最小頻寬為2K
MinBandwidth all 2048
</Directory>
# Limit BW usage
BandWidthModule On
ForceBandWidthModule On
#開放20KB對外使用
Bandwidth all 20480
#每個Connection最小頻寬為2K
MinBandwidth all 2048
</Directory>
6.重新啟動Apache。這時他就開始發生作用了。^^
Leave a comment