|
|
茫茫網海中的冷日
發生過的事,不可能遺忘,只是想不起來而已! |
|
恭喜您是本站第 1671956
位訪客!
登入 | 註冊
|
|
|
|
發表者 |
討論內容 |
冷日 (冷日) |
發表時間:2005/11/4 7:03 |
- Webmaster
- 註冊日: 2008/2/19
- 來自:
- 發表數: 15771
|
- [教學]Apache阻擋單一IP過多連線 ( mod_limitipconn )
- Apache mod_limitipconn
http://dominia.org/djao/limitipconn.html
這個 mod 可以用來檔 flashget, net transport, netants 之類的多線程下載程式,
開太多線, 對 server 造成負擔, 又不會比較快
FreeBSD:
cd /usr/ports/www/mod_limitipconn && make install
編輯 httpd.conf
LoadModule limitipconn_module libexec/apache/mod_limitipconn.so
AddModule mod_limitipconn.c
ExtendedStatus On
新增
<IfModule mod_limitipconn.c>
<Location />
MaxConnPerIP 2
</Location>
<Location /cgi-bin>
MaxConnPerIP 2
</Location>
</IfModule></p>
若有 VirtualHost, 請加到對應的 block
apachectl restart 後, 測試一下 log 裡面會發現 503, 就是被限制的線程
220.130.142.100 - - [20/Aug/2004:01:32:43 +0800] "GET /test.rar HTTP/1.1" 503 395
220.130.142.100 - - [20/Aug/2004:01:32:49 +0800] "GET /test.rar HTTP/1.1" 503 395
220.130.142.100 - - [20/Aug/2004:01:32:55 +0800] "GET /test.rar HTTP/1.1" 503 395
220.130.142.100 - - [20/Aug/2004:01:33:02 +0800] "GET /test.rar HTTP/1.1" 503 395
220.130.142.100 - - [20/Aug/2004:01:33:08 +0800] "GET /test.rar HTTP/1.1" 503 395
220.130.142.100 - - [20/Aug/2004:01:33:14 +0800] "GET /test.rar HTTP/1.1" 503 395
|
|
冷日 (冷日) |
發表時間:2006/2/21 9:08 |
- Webmaster
- 註冊日: 2008/2/19
- 來自:
- 發表數: 15771
|
- [分享]apache中限制同一ip的同時登陸次數
- apache中限制同一ip的同時登陸次數
1.構建過程說明 進行ip鏈接限制利用了apache的module--->mod_limitipconn 具體網址:http://dominia.org/djao/limitipconn.html apache的modyle查詢網址:http://modules.apache.org
2.構建過程 構建過程是基於apache啟用dso(dynamic shared objects )模式. 也就是你在編譯apache的時候加入了--enable-module=so這個參數 構建的時候你無需停止你的apache服務...這個就是dso的方便之處:) 為了便於理解 這裡把apache安裝的目錄叫做/apache-root apache的源碼目錄叫做/apache-src
1) 把下裁到的mod_limitipconn-0.04.tar.gz解壓到一個目錄
tar -zvxf mod_limitipconn-0.04.tar.gz
這樣mod就被解壓到它所在地目錄了...
2) 利用apxs把mod_limitconn.c編譯成so為後綴的模塊,並由程序自動修改apache的conf和cp模塊到/apache-root/libexec,並設置正確權限(全自動完成)
cd mod_limitipconn-0.04
/apache-root/bin/apxs -i -a -c mod_limitconn.c
3) 利用phpinfo();函數查看apache當前的mod情況...(用vi編輯一個只有的php)
如果沒有mod_status那麼手動增加 增加方法如下: 為apache增加server-status的支持...
cd /apache-src/src/modules/standard
/apache-root/bin/apxs -i -a -c mod_status.c
注:一般都有mod_status了...:)所以上面步驟可自選...
4) 修改apache的配置文件,配置文件在/apache-root/conf/httpd.conf
檢查裡面是否有下面的句子
LoadModule limitipconn_module libexec/mod_limitipconn.so
#LoadModule status_module libexec/mod_status.so //手動增?#91;mod_模塊要?#91;這行
AddModule mod_limitipconn.c
#AddModule mod_status.c //手動增?#91;mod_模塊要?#91;這行
並且 段要為on的設置,默認是off
還要在httpd.conf的最後加入
##############
#new add conf#
##############
<IfModule mod_limitipconn.c>
<Location />
MaxConnPerIP 6
# exempting images from the connection limit is often a good
# idea if your web page has lots of inline images, since these
# pages often generate a flurry of concurrent image requests
NoIPLimit image/* //image文件不受限制...?#93;括gif,jpg等...
</Location>
# <Location /mp3>
# MaxConnPerIP 1
# # In this case, all MIME types other than audio/mpeg and video*
# # are exempt from the limit check
# OnlyIPLimit audio/mpeg video
# </Location>
#</IfModule>
##################
#new add conf end#
##################
MaxConnPerIP 6說明限制每個ip為6個鏈接....
5) 確認conf是不是正確
/apache-root/bin/apachectl configtest
restart apache
/apache-root/bin/apachectl restart
|
|
|
冷日 (冷日) |
發表時間:2006/2/21 9:11 |
- Webmaster
- 註冊日: 2008/2/19
- 來自:
- 發表數: 15771
|
- [分享]Apache限制單一IP併發之連線數
- apache限制並發數,IP,帶寬設置
限制並發數 下載模塊: 到官方網址: http://www.nowhere-land.org/programs/mod_vhost_limit/下載模塊
wget http://www.nowhere-land.org/programs/mod_vhost_limit/mod_vhost_limit-0.4.tar.gz
安裝:
/apache-root/bin/apxs -c ./mod_vhost_limit.c
在 httpd.conf 加入:
LoadModule vhost_limit_module libexec/mod_vhost_limit.so
AddModule mod_vhost_limit.c
配置:
MaxClients 150
ExtendedStatus On
NameVirtualHost *
<VIRTUALHOST * />
ServerName server1
DocumentRoot /some/where/1
MaxVhostClients 100
<VIRTUALHOST * />
ServerName server2
DocumentRoot /some/where/2
MaxVhostClients 30
<VIRTUALHOST * />
ServerName server3
DocumentRoot /some/where/3
其中: server1 被限制為 100 個並發線程數。 server2 被限制為 30 個並發線程數。 server3 沒有被限制。 註:需 mod_status 的 ExtendedStatus On 支持!! 如超出限制的並發數在客戶端就會出現503錯誤
|
|
冷日 (冷日) |
發表時間:2006/2/21 9:13 |
- Webmaster
- 註冊日: 2008/2/19
- 來自:
- 發表數: 15771
|
- [分享]Apache限制IP連接數
- 限制IP連接數
到這裡下載模塊 http://dominia.org/djao/limit
wget http://dominia.org/djao/limit/mod_limitipconn-0.04.tar.gz
安裝:
tar zxvf mod_limitipconn-0.04.tar.gz
cd mod_limitipconn-0.04
make APXS=/usr/local/apache/bin/apxs s-----這裡要按你自己的路徑?#93;置
make install APXS=/usr/local/apache/bin/apxs s-----這裡要按你自己的路徑?#93;置
編輯httpd.conf 添加 全局變量:
< IfModule mod_limitipconn.c >
< Location / > # 所有虛擬主機的/目錄
MaxConnPerIP 3 # 每IP只允許3個並發連接
NoIPLimit image/* # 對圖片不做IP限制
< /Location >
< Location /mp3 > # 所有主機的/mp3目錄
MaxConnPerIP 1 # 每IP只允許一個連接請求
OnlyIPLimit audio/mpeg video # 該限制只對視頻和音頻格式的文件
< /Location >
< /IfModule >
或者虛擬主機的:
< VirtualHost xx.xxx.xx.xx > ##ip 地?#125;
ServerAdmin easy@phpv.net
DocumentRoot /home/easy
ServerName www.phpv.net
< IfModule mod_limitipconn.c >
< Location / >
MaxConnPerIP 5
NoIPLimit image/*
< /Location >
< Location /mp3 > # 所有主機的/mp3目錄
MaxConnPerIP 2 # 每IP只允許一個連接請求
OnlyIPLimit audio/mpeg video # 該限制只對視頻和音頻格式的文件
< /Location >
< /IfModule >
< /VirtualHost >
|
|
冷日 (冷日) |
發表時間:2006/2/21 9:17 |
- Webmaster
- 註冊日: 2008/2/19
- 來自:
- 發表數: 15771
|
- [分享]限制網站流量頻寬
- 限制帶寬:
官方網站:http://www.cohprog.com/mod_bandwidth.html 下載模塊
wget ftp://ftp.cohprog.com/pub/apache/module/1.3.0/mod_bandwidth.c
安裝:
/apache-root/bin/apxs -c ./mod_bandwidth.c
編輯httpd.conf 添加:
LoadModule bandwidth_module libexec/mod_bandwidth.so
AddModule mod_bandwidth.c
重啟你的apache
步驟 1、下載模塊 mod_bandwidth
wget ftp://ftp.cohprog.com/pub/apache/module/
2、編譯和安裝 a) 編譯: 由於 apache 是用編譯好的包安裝的,因此只有採用 apxs 方式編譯
/usr/local/sbin/apxs -c ./mod_bandwidth.c
b) 創建 mod_bandwidth 運行需要的目錄:
mkdir /tmp/apachebw
mkdir /tmp/apachebw/link
mkdir /tmp/apachebw/master
chmod -R 777 /tmp/apachebw
c) 修改 /usr/local/etc/apache/httpd.conf 文件: c.1) 增加下列內容
LoadModule bandwidth_module libexec/apache/mod_bandwidth.so
AddModule mod_bandwidth.c
注意:這兩行必須分別加在相應區域的最前面,使得這個模塊以最低的優先級運行。
c.2) 增加下列內容
BandWidthDataDir 「/tmp/apachebw/」
BandWidthModule on
c.3) 修改 的設置
# 不限制局域網內用戶的下載速度
BandWidth 192.168.0 0
# 限制其他用戶的下載速度為每秒 8192 字節
BandWidth all 8192
按照上面的方式修改其他 小節
d) 重新啟動 apache:
apachectl configtest
apachectl restart
|
|
|
冷日 (冷日) |
發表時間:2006/2/21 9:54 |
- Webmaster
- 註冊日: 2008/2/19
- 來自:
- 發表數: 15771
|
- [分享]mod_bandwidth 的選項簡單說明
- mod_bandwidth 的選項簡單說明:
…………………………
BandWidthDataDir[code:1:f63ef9ed39] 格式: BandWidthDataDir < 目錄> 預?#93;: 「/tmp/apachebw」 上下文: server config
?#93;定 mod_bandwidth 保存運行時數據的目錄。需要在該目錄下創建 ./master 和 ./link 兩個子目錄,並?#93;定為權限為 777。
注意:有些系統會定時清理 /tmp 目錄,所以在這些系統上最好把 BandWidthDataDir ?#93;定到其他地方。 [/code:1:f63ef9ed39] BandWidthModule[code:1:f63ef9ed39] 格式: BandWidthModule 預?#93;: Off 上下文: per server config
允許或者禁止模塊。 [/code:1:f63ef9ed39] BandWidthPulse[code:1:f63ef9ed39] 格式: BandWidthPulse < 毫秒?#93;千分之一秒> 預?#93;: 1000 上下文: per server config
改變計算帶寬的時間間隔,預?#93;為1000毫秒?#93;1秒)。使用更低的間隔可以獲得 更精確的帶寬控制,但消耗更多的CPU時間,反之亦然。
注意:這個選項的詳細說明請參考 mod_bandwidth 的文檔。 [/code:1:f63ef9ed39] BandWidth[code:1:f63ef9ed39] 格式: BandWidth < 速率> 預?#93;: 無 上下文: per directory, .htaccess
限制這個目錄下文件下載的速率。
domain 指定來自哪個域的連接受到這個?#93;定的影響。 ip 指定來自哪個ip地?#125;?#93;或者ip段)的連接受到影響。 all 所有連接都受到影響。
示例:
# 來自 dualface.com 的連接不限制下載速度 BandWidth dualface.com 0 # 來自 192.168.0.0/16?#93;或者192.168.0) 網段的連接不限制下載速度 BandWidth 192.168.0.0/16 0 # 其他連接限制下載速度為每秒1024字節 BandWidth all 1024 # 越前面的?#93;定優先權越高 [/code:1:f63ef9ed39] LargeFileLimit[code:1:f63ef9ed39] 格式: LargeFileLimit < 文件大小> < 速率> 預?#93;: 無 上下文: per directory, .htaccess
對於超過指定大小的文件,下載時使用的速率。如果速率?#93;定0即不限制速度, 但下載速度仍然要受到BandWidth?#93;定的影響。如果?#93;定成-1,則完全不受影響。 通過?#93;定不同的文件大小和速率,可以?#93;定不同大小範圍內文件的下載速度。
示例:
# 文件尺寸大於等於200千字節的文件,下載速率為每秒3072字節 LargeFileLimit 200 3072 LargeFileLimit 1024 2048 [/code:1:f63ef9ed39] MaxConnection[code:1:f63ef9ed39] 格式: MaxConnection < 連接數> 預?#93;: 0 ?#93;等於不限制) 上下文: per directory, .htaccess
當超過指定連接數時,拒絕新的連接。 [/code:1:f63ef9ed39] MinBandWidth[code:1:f63ef9ed39] 格式: MinBandWidth < 速率> 預?#93;: all 256 上下文: per directory, .htaccess
?#93;定最小帶寬,預?#93;為每秒256字節。根據BandWidth和LargeFileLimit?#93;定的速 率。mod_bandwidth會計算允許的連接數。例如BandWidth為4096字節,而 MinBandWidth為1024字節,則最大並發連接數為4。 [/code:1:f63ef9ed39] 注意:這個選項的詳細說明請參考 mod_bandwidth 的文檔。
|
|
|
|