mod_cband 管理apache的帶寬和流量
mod_limitipconn 控制下載速度
mod_bw 控制apache併發連接數
mod_evasive 防ddos模塊
首先查看已經加載的模塊
/opt/apache/bin/apachectl -l
Compiled in modules:
core.c
mod_authn_file.c
mod_authn_default.c
mod_authz_host.c
mod_authz_groupfile.c
mod_authz_user.c
mod_authz_default.c
mod_auth_basic.c
mod_cache.c
mod_disk_cache.c
mod_mem_cache.c
mod_log_config.c
mod_env.c
mod_expires.c
mod_version.c
http_core.c
mod_mime.c
mod_status.c
mod_autoindex.c
mod_asis.c
mod_cgi.c
.................
1、mod_cband
下載地址:
http://sourceforge.net/projects/cband/files/mod-cband/
http://nchc.dl.sourceforge.net/project/cband/mod-cband/mod-cband-0.9.6.1/mod-cband-0.9.6.1.tgz
#cd mod-cband-0.9.6.1
#./configure --with-apxs=/opt/apache/bin/apxs
#make
#make install
查看apache主配置已經加入mod_cband.so
#grep cband /opt/apache/conf/httpd.conf
LoadModule cband_module modules/mod_cband.so
#chown apache.apache /opt/apache/modules/mod_cband.so
#ls -ld /opt/apache/modules/mod_cband.so
-rwxr-xr-x 1 apache apache 190265 Jan 11 09:32 /opt/apache/modules/mod_cband.so
虛擬主機加入如下2行:
CBandSpeed 2048 300 100
CBandRemoteSpeed 40kb/s 15 5
CBandSpeed限定總的最大鏈接速度爲2048kb,最多併發處理300個請求和100個鏈接
CBandRemoteSpeed限定一個用戶最多能有40kb的鏈接速度,最多併發15個請求和5個鏈接
重新加載apache主配置文件:
#/opt/apache/bin/apachectl -k graceful
2、mod_limitipconn
下載地址:
http://dominia.org/djao/limit/
http://dominia.org/djao/limit/mod_limitipconn-0.24.tar.bz2
#tar jxvf mod_limitipconn-0.24.tar.bz2
#cd mod_limitipconn-0.24
#/opt/apache/bin/apxs -c -i -a mod_limitipconn.c
查看apache配置已經加入mod_limitipconn.so
#grep limitipconn /opt/apache/conf/httpd.conf
LoadModule limitipconn_module modules/mod_limitipconn.so
#chown apache.apache /opt/apache/modules/mod_limitipconn.so
主配置添加ExtendedStatus On
虛擬主機添加如下:
<IfModule mod_limitipconn.c>
<Location />
MaxConnPerIP 5 #限制的線程數
NoIPLimit index.htm #對此文件不做限制
NoIPLimit p_w_picpath/* #對圖片文件不限制
</Location>
<Location /media>
MaxConnPerIP 2 #對於audio音頻文件每IP最多保持2個連接
OnlyIPLimit audio/mpeg video
</Location>
</IfModule>
重新加載apache配置文件:
#/opt/apache/bin/apachectl -k graceful
參考文檔:
http://blog.sina.com.cn/s/blog_4fc2b1b80100m8us.html
http://zhumeng8337797.blog.163.com/blog/static/100768914201135115238429/
3、mod_bw
下載地址:
http://ivn.cl/2010/01/06/downloads-for-bandwidth-mod/
http://legacy.ivn.cl/files/source/mod_bw-0.92.tgz
安裝mod_bw
#mkdir mod_bw-0.92
#tar zxvf mod_bw-0.92.tgz -C mod_bw-0.92
#cd mod_bw-0.92
#/opt/apache/bin/apxs -c -i -a mod_bw.c
查看apache主配置已經加入mod_bw.so
#grep mod_bw /opt/apache/conf/httpd.conf
LoadModule bw_module modules/mod_bw.so
#chown apache.apache /opt/apache/modules/mod_bw.so
#/opt/apache/bin/apxs -c -i -a mod_bw.c
虛擬主機加入如下幾行:
BandWidthModule On #預設是關閉,開啓後會處理每個請求
ForceBandWidthModule On #這個沒加上之前試了幾次發現不起作用
MaxConnection 10.100.10.0/24 20 #針對這個網段可以有20個線程
MaxConnection all 50 #限制每個IP最大線程
Bandwidth all 102400 #所有的連接限速100K/s
MinBandwidth all -1 #不限制最小速度
LargeFileLimit * 10240 200000 #文件大於10M的,下載速度控制在300K/s
LargeFileLimit .avi 1 30000 #avi文件控制在30K/s
LargeFileLimit .mpg 1 30000 #mpg文件控制在30K/s
重新加載apache配置文件:
#/opt/apache/bin/apachectl -k graceful
參考文檔:
http://blog.sina.com.cn/s/blog_4fc2b1b80100m8us.html
http://zhumeng8337797.blog.163.com/blog/static/100768914201135115238429/
4、mod_evasive
下載地址:
http://fossies.org/unix/www/apache_httpd_modules/mod_evasive_1.10.1.tar.gz
http://fossies.org/unix/www/apache_httpd_modules/
#tar -zxvf mod_evasive_1.10.1.tar.gz
#cd mod_evasive
#/opt/apache/bin/apxs -i -a -c mod_evasive20.c
#grep evasive /opt/apache/conf/httpd.conf
LoadModule evasive20_module modules/mod_evasive20.so
#chown apache.apache /opt/apache/modules/mod_evasive20.so
apache虛擬主機加入:
<IfModule mod_evasive20.c>
DOSHashTableSize 3097
DOSPageCount 3
DOSSiteCount 50
DOSPageInterval 2
DOSSiteInterval 2
DOSBlockingPeriod 10
DOSEmailNotify [email protected]
# DOSSystemCommand “su – someuser -c ‘/sbin/… %s …’”
DOSLogDir “/var/log/mod_evasive”
</IfModule>
附:參數說明:
DOSHashTableSize 3097 記錄和存放黑名單的哈西表大小,如果服務器訪問量很大,可以加大該值
DOSPageCount 3 同一個頁面在同一時間內可以被同一個用戶訪問的次數,超過該數字就會被列爲***,同一時間的數值可以在DosPageInterval參數中設置。
DOSSiteCount 50 同一個用戶在同一個網站內可以同時打開的訪問數,同一個時間的數值在DOSSiteInterval中設置。
DOSPageInterval 2 設置DOSPageCount中時間長度標準,默認值爲1。
DOSSiteInterval 2 設置DOSSiteCount中時間長度標準。
DOSBlockingPeriod 10 被封時間間隔秒,這中間會收到 403 (Forbidden) 的返回。
其他可選參數:
DOSEmailNotify [email protected] 設置受到***時接收***信息提示的郵箱地址。
# DOSSystemCommand “su – someuser -c ‘/sbin/… %s …’” 受到***時Apache運行用戶執行的系統命令
DOSLogDir “/var/log/mod_dosevasive” ***日誌存放目錄,BSD上默認是 /tmp
重新加載apache配置文件:
#/opt/apache/bin/apachectl -k graceful