先去下載該模組: mod_cband 目前釋出到 0.9.7.5 版 http://cband.linux.pl/使用該模組對 VirtualHost 設定可以使用的頻寬 (在 mos-cband 模組解壓縮後有一個 INSTALL 檔,裡面有詳述)
下載到 /tmp/ 資料夾裡面
# cd /tmp
# wget http://cband.linux.pl/download/mod-cband-0.9.7.5.tgz
解壓縮: tar -zxvf mod-cband-0.9.7.5.tgz
如果你有安裝 apsx 或 apsx2 的話 請用下面安裝 (我用此方式,因我有安裝 apsx )
# cd mod-cband-0.9.7.5
# ./configure
checking for gcc... gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ANSI C... none needed
checking whether make sets $(MAKE)... yes
checking for apr_palloc in -laprutil... no
checking for an ANSI C-conforming const... yes
checking for apxs... apxs
checking how to run the C preprocessor... gcc -E
checking for egrep... grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking stdio.h usability... yes
checking stdio.h presence... yes
checking for stdio.h... yes
checking for string.h... (cached) yes
checking assert.h usability... yes
checking assert.h presence... yes
checking for assert.h... yes
checking ctype.h usability... yes
checking ctype.h presence... yes
checking for ctype.h... yes
checking errno.h usability... yes
checking errno.h presence... yes
checking for errno.h... yes
checking math.h usability... yes
checking math.h presence... yes
checking for math.h... yes
checking netinet/in.h usability... yes
checking netinet/in.h presence... yes
checking for netinet/in.h... yes
checking sys/socket.h usability... yes
checking sys/socket.h presence... yes
checking for sys/socket.h... yes
checking arpa/inet.h usability... yes
checking arpa/inet.h presence... yes
checking for arpa/inet.h... yes
configure: creating ./config.status
config.status: creating Makefile
# make
apxs -Wc,-Wall -Wc,-DDST_CLASS=3 -c src/mod_cband.c
/usr/lib64/apr-1/build/libtool --silent --mode=compile gcc -prefer-pic -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -DLINUX=2 -D_REENTRANT -D_GNU_SOURCE -pthread -I/usr/include/httpd -I/usr/include/apr-1 -I/usr/include/apr-1 -Wall -DDST_CLASS=3 -c -o src/mod_cband.lo src/mod_cband.c && touch src/mod_cband.slo
src/mod_cband.c:81: warning: type qualifiers ignored on function return type
/usr/lib64/apr-1/build/libtool --silent --mode=link gcc -o src/mod_cband.la -rpath /usr/lib64/httpd/modules -module -avoid-version src/mod_cband.lo
# make install
apxs -Wc,-Wall -Wc,-DDST_CLASS=3 -i -a -n cband src/mod_cband.la
/usr/lib64/httpd/build/instdso.sh SH_LIBTOOL='/usr/lib64/apr-1/build/libtool' src/mod_cband.la /usr/lib64/httpd/modules
/usr/lib64/apr-1/build/libtool --mode=install cp src/mod_cband.la /usr/lib64/httpd/modules/
cp src/.libs/mod_cband.so /usr/lib64/httpd/modules/mod_cband.so
cp src/.libs/mod_cband.lai /usr/lib64/httpd/modules/mod_cband.la
cp src/.libs/mod_cband.a /usr/lib64/httpd/modules/mod_cband.a
chmod 644 /usr/lib64/httpd/modules/mod_cband.a
ranlib /usr/lib64/httpd/modules/mod_cband.a
PATH="$PATH:/sbin" ldconfig -n /usr/lib64/httpd/modules
----------------------------------------------------------------------
Libraries have been installed in:
/usr/lib64/httpd/modules If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the `-LLIBDIR'
flag during linking and do at least one of the following:
- add LIBDIR to the `LD_LIBRARY_PATH' environment variable
during execution
- add LIBDIR to the `LD_RUN_PATH' environment variable
during linking
- use the `-Wl,--rpath -Wl,LIBDIR' linker flag
- have your system administrator add LIBDIR to `/etc/ld.so.conf'
See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------
chmod 755 /usr/lib64/httpd/modules/mod_cband.so
[activating module `cband' in /etc/httpd/conf/httpd.conf]
安裝一切順利沒有錯誤訊息,安裝過程中編譯好 mod_cband.so 且被放置到 Apache 的模組資料夾(/usr/lib64/httpd/modules/)內了
及在 Apache 的設定檔(/etc/httpd/conf/httpd.conf)內加入了載入模組
LoadModule cband_module /usr/lib64/httpd/modules/mod_cband.so
至此mod_cband裝設已經完成,所以後續再設定要管控的相關設定即可!
如果沒有安裝 apsx 或 apsx2 的話 請用下面的方式編譯
# cd mod-cband-0.9.7.5
# ./configure –add-module=../mod-cband/mod_cband.c –enable-shared=cband –enable-module=so
# make
# make install
設定 /etc/httpd/conf/httpd.conf以上設定好後 重啟 Apache 服務 後連上這一個所設定的 VirtualHost 就會受到頻寬限制了
以下使用最簡單的方式配置,不作假為複雜的配置,如:CBandClass
<VirtualHost xxx.xxx.xxx.xxx> # 此處 xxx.xxx.xxx.xxx 請改成你的伺服器 對外 IP 位置
ServerName www.xspace.idv.tw
ServerAdmin webmaster@xspace.idv.tw
DocumentRoot /var/www/www.xspace.idv.tw
#限制此虛擬主機最高訪問速度 1024kbps、每秒最高接受請求數 200 個 、最高並發連接 200 個
CBandSpeed 1024 200 200
#限制來自遠端訪問速度512kB每秒,30個請求每秒,30個連接。
CBandRemoteSpeed 512kb/s 30 30
#設定多久對所記錄的全域訪問頻寬進行重設(歸零) 4W=4 weeks 4 週 (一個月)
CBandPeriod 4W
#開啟 mod_cband 的即時監看功能,可以透過 http://server_name/cband-status 進行觀查。(全域監看)
SetHandler cband-status
#開啟 mod_cband 的即時監看功能,可以透過 http://server_name/cband-status-me 進行觀查。(單一監看)
SetHandler cband-status-me
</VirtualHost>
歡迎光臨 ADJ網路實驗室 (http://dz.adj.idv.tw/) | Powered by Discuz! 6.0.0 |