(转)Linux下apache限速和限制同一IP连接数的实现
單位有一臺(tái)DELL的服務(wù)器,4核雙CPU,4G內(nèi)存,1TB的存儲(chǔ)空間,閑來(lái)無(wú)事,申請(qǐng)了域名http://www.zxzy123.cn,做了個(gè)網(wǎng)站,本以為用這樣的配置做個(gè)下載站是綽綽有余了,沒(méi)想到上線(xiàn)沒(méi)幾天,忽然發(fā)現(xiàn)有時(shí)打不開(kāi)網(wǎng)頁(yè)或很慢,慘了,受攻擊了,心里想,查看記錄,沒(méi)發(fā)現(xiàn)什么問(wèn)題,帶寬也沒(méi)用盡,ftp很快,關(guān)閉了下載鏈接,發(fā)現(xiàn)apache又很快了,問(wèn)題應(yīng)該就在這里,可能是用戶(hù)開(kāi)太多線(xiàn)程下載大軟件了(我的好多軟件都是GB級(jí)的),如何解決這個(gè)問(wèn)題呢?總不能不讓用戶(hù)下載吧,說(shuō)干就干,上網(wǎng)找了些資料,發(fā)現(xiàn)了兩個(gè)很好的apache模塊: mod_bw 和 mod_limitipconn ;分別是限速和限制IP連接數(shù)的模塊。下面就是具體的操作步驟。
一、安裝準(zhǔn)備
用 whereis apxs 命令先確定你的系統(tǒng)是否有apxs文件及其路徑,如果沒(méi)有請(qǐng)安裝(redhat linux自帶的apache就可能沒(méi)安裝)
一、安裝限速模塊
1、下載:wget?http://legacy.ivn.cl/files/source/mod_bw-0.92.tgz
? ?如果以上地址失效,請(qǐng)自行到 ?http://ivn.cl/category/apache/查找
2,安裝:
#tar -xvf mod_bw-0.92.tgz
#cd mod_bw
#/usr/local/apache2/bin/apxs -i -c -a mod_bw.c
3、OK,限速模塊安裝完畢,一會(huì)我們?cè)倩剡^(guò)頭來(lái)配置它
二、安裝限制IP連接數(shù)模塊
1、下載:wget?http://dominia.org/djao/limit/mod_limitipconn-0.23.tar.bz2
2、安裝
#tar -jxvf mod_limitipconn-0.23.tar.bz2
#cd mod_limitipconn-0.23
#vi Makefile
修改:apxs = “/usr/local/apache2/bin/apxs” # 這里是自己apache的apxs路徑,加載模塊
或者
#/usr/local/apache2/bin/apxs -i -c -a mod_limitipconn.c ?來(lái)加載模塊
#make
#make install
3、OK,IP連接數(shù)限制模塊安裝完成
三、以下配置httpd.conf文件
1、確定是否有以下兩句,如果有,如上面的安裝是成功的,如果沒(méi)有請(qǐng)手動(dòng)添加試試(
不一定完成相同)
LoadModule limitipconn_module modules/mod_limitipconn.so
LoadModule bw_module ? ? ? ? ?modules/mod_bw.so
2、找到ExtendedStatus On,如果前面有#號(hào)的話(huà)要把#號(hào)去掉,如果沒(méi)有這個(gè)選項(xiàng)需要自己手工添加
3、配置限速,添加以下語(yǔ)句(#后面的中文字全部不要輸,這里是說(shuō)明用的),配置限速,可根據(jù)控制的范圍放在全局域或放在虛擬主機(jī)域
? ?#這個(gè) module 預(yù)設(shè)是關(guān)閉的,要將他開(kāi)啟才能夠使用
? ?BandwidthModule On
? ?#這個(gè) module 預(yù)設(shè)不會(huì)過(guò)濾每個(gè)需求,如果您開(kāi)啟他,他將處理過(guò)濾每個(gè)需求
? ?ForceBandWidthModule On
? ?#最大帶寬,這個(gè)有兩個(gè)參數(shù)。第一個(gè)是限制來(lái)源的位置,也就是該位置受限制。他可以是完整的 hostname、網(wǎng)域名稱(chēng)或 IP。可搭配遮罩使用,例如 192.168.0.0/24 or 192.168.0.0/255.255.255.0,all代表所有 。另一個(gè)參數(shù)是限制的速率,以 bytes 每秒為單位;假如為 0,則不受限制。
? ?Bandwidth all 10000 #限速10K
? ?#最小帶寬,一般不限制,以下為不限制
? ?MinBandwidth all -1
? ?#大文件下載限制,顧名思義,這設(shè)定是專(zhuān)門(mén)用來(lái)限制大型檔案的。第一個(gè)參數(shù)是指文件名,可以使用 * 代表全部。也可使用 .rar 等,
第二個(gè)參數(shù)單位是 kbyte,只要超過(guò)這個(gè) Size 就被規(guī)范在這個(gè)設(shè)定的限速中,最后一個(gè)參數(shù)就是被限制的速率,單位是byte/s。?
? ?LargeFileLimit * 500 10240
4、配置限制IP連接數(shù),添加以下語(yǔ)句(#后面的中文字全部不要輸,這里是說(shuō)明用的),配置限速,可根據(jù)控制的范圍放在全局域或放在虛擬主機(jī)域
? ?<IfModule mod_limitipconn>
? ? ?<Location /> #需要控制的路徑,相對(duì)于網(wǎng)站根目錄
? ? ? ?MaxConnPerIP 3 #限制的線(xiàn)程數(shù)
? ? ? ?NoIPLimit image/* #對(duì)圖片文件不做限制 如果僅限制某幾種文件請(qǐng)用以下語(yǔ)句,本語(yǔ)句就不要
? ? ? ?OnlyIPLimit audio/mpeg video/* application/x-rar #只對(duì)音頻視頻文件,自定義 minetype文件起作用
? ? ?</Location>
? ?</IfModule>
5、保存httpd.conf,重啟httpd,一切OK。
轉(zhuǎn)載于:https://www.cnblogs.com/greywolf/p/3450314.html
總結(jié)
以上是生活随笔為你收集整理的(转)Linux下apache限速和限制同一IP连接数的实现的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 你我共勉的意思是什么
- 下一篇: 放心猪肉的宣传句子29句