茫茫網海中的冷日
         
茫茫網海中的冷日
發生過的事,不可能遺忘,只是想不起來而已!
 恭喜您是本站第 1671956 位訪客!  登入  | 註冊
主選單

Google 自訂搜尋

Goole 廣告

隨機相片
IMG_60D_00333.jpg

授權條款

使用者登入
使用者名稱:

密碼:


忘了密碼?

現在就註冊!

小企鵝開談 : [分享]Apache阻擋砍站設定集

發表者 討論內容
冷日
(冷日)
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
冷日
(冷日)
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編輯一個只有
<? phpinfo(); ?>
的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;這行

並且
ExtendedStatus On

段要為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
冷日
(冷日)
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錯誤
冷日
(冷日)
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 >
冷日
(冷日)
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
冷日
(冷日)
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 的文檔。
前一個主題 | 下一個主題 | 頁首 | | |



Powered by XOOPS 2.0 © 2001-2008 The XOOPS Project|