日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

Linux下Apache并发连接数和带宽控制

發布時間:2025/6/17 linux 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux下Apache并发连接数和带宽控制 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Linux+Apache的穩定性、安全性和性能以及低廉的價格正在贏得越來越多的市場份額,使 用Linux+Apache作網站服務器的朋友也越來越多,而Apache作為一種http服務,相比FTP總是不容易控制,特別是當網站以http方式 提供軟件/音樂下載時,若是每個用戶都開啟多個線程并沒有帶寬的限制,將很快達到http的最大連接數或者造成網絡壅塞,使得網站的許多正常服務都無法運 行。不過,Apache的使用者們早已開發出了mod_limitipconn和mod_bandwidth兩個模塊,來控制http的并發連接數和用戶 所能夠使用的帶寬,下面將以RedHat Linux 7.3+Apache 1.3.7來說明它們的使用方法。

一、使用mod_limitipconn限制Apache的并發連接數

  mod_limitipconn可以控制每個IP地址同時連接服務器某一個目錄的并發連接數,是一個非常有用的模塊,其官方網頁是 http://dominia.org/djao/limitipconn.html,最新版本為for Apache 1.3.7的0.04,并且還有支持Apache 2.x的模塊下載,由于本人使用Apache 1.3.7版本,所以請使用2.x版本Apache的朋友到其官方網站察看具體的使用方法。

  mod_limitipconn for Apache 1.3x提供三種安裝方式,分別是tar包、rpm安裝文件和rpm源文件,由于rpm包只能用在 RedHat 7.x 版本,并且不支持檢測代理服務器,所以我們一般都使用tar包的安裝方式。

  以管理員方式登陸服務器,然后在服務器上運行 wget http://dominia.org/djao/limit/mod_limitipconn-0.04.tar.gz 將mod_limitipconn的tar包下載到服務器,然后按照再運行tar zxvf mod_limitipconn-0.04.tar.gz將tar包解壓縮,會在當前目錄下生成mod_limitipconn-0.04目錄,然后cd mod_limitipconn-0.04進入此目錄,下一步就是使用apxs將目錄中的mod_limitipconn.c編譯。這時,我們需要確定自 己的Apache安裝在那個目錄,并且找到apxs命令放在哪里。

  通過命令whereis apxs,我們可以確定apxs命令的路徑,如我的apxs命令所在為/usr/sbin/apxs,則輸入/usr/sbin/apxs -c -i -a mod_limitipconn.c對mod_limitipconn.c進行編譯,此命令會自動在你Apache的配置文件httpd.conf中加入 需要的信息,并且將生成的mod_limitipconn.so模塊拷貝到Apache的模塊目錄。不過為了確認此命令是否正常運作,請首先檢查自己的 Apache模塊目錄(我的是/usr/lib/apache),看內部是否含有mod_limitipconn.so文件,沒有的話請將 mod_limitipconn-0.04目錄中生成的文件拷貝到此處。

  剛才命令自動生成的httpd.conf可能有些錯誤,在我的系統中,它將LoadModule limitipconn_module modules/mod_limitipconn.so放在了

<IfDefine HAVE_PYTHON>
LoadModule python_module modules/mod_python.so
</IfDefine>

之間,而將AddModule mod_limitipconn.c放在了

<IfDefine HAVE_PYTHON>
AddModule mod_python.c
</IfDefine>

之間,直接造成了mod_limitipconn模塊不能正常運行,所以請將這兩行分別移動到沒 有<IfDefine></IfDefine>的相應行中,然后請確認mod_status模塊已經加載,并且在 mod_status下添加了ExtendedStatus On這一行。這時我們的mod_limitipconn模塊就安裝完畢,下一步就是對某個目錄進行并發連接數的設置了。

  mod_limitipconn可以對全局和虛擬主機進行不同的限制,其語法結構都是

<IfModule mod_limitipconn.c>
<Location /> #所限制的目錄所在,此處表示主機的根目錄
MaxConnPerIP 3 #所限制的每個IP并發連接數為3個
NoIPLimit image/* #對圖片不做IP限制
</Location>
<Location /mp3> #所限制的目錄所在,此處表示主機的/mp3目錄
MaxConnPerIP 1 #所限制的每個IP并發連接數為1個
OnlyIPLimit audio/mpeg video #該限制只對視頻和音頻格式的文件
</Location>
</IfModule>

  當對全局進行限制時,將這段代碼放在httpd.conf文件沒有VirtualHost的地方,若是對某個虛擬主機進行限制,請將其放 在<VirtualHost xxx.xxx.xxx.xxx>和</VirtualHost>之間,我們可以通過更改Location以及 MaxConnPerIP方便的控制所限制的目錄和并發連接數。

  最后,只要重新啟動Apache服務,并發連接數的限制就可以生效。

二、使用mod_bandwidth控制Apache的帶寬

  Apache 1.3.7實際上帶有mod_bandwidth支持,只是沒有此模塊的so文件,我們所做的就是下載mod_bandwidth的源文件進行編譯,并對mod_bandwidth進行相應的設置。

  在下載之前,請先確認自己的Apache配置文件httpd.conf中是否含有

<IfDefine HAVE_BANDWIDTH>
LoadModule bandwidth_module modules/mod_bandwidth.so
</IfDefine>

以及

<IfDefine HAVE_BANDWIDTH>
AddModule mod_bandwidth.c
</IfDefine>

若是沒有,請加上

LoadModule bandwidth_module
libexec/apache/mod_bandwidth.so
AddModule mod_bandwidth.c

  并且這兩行必須分別加在相應區域的最前面,使得這個模塊以最低的優先級運行。(不過1.3.7的Apache應該有,呵呵)。

  確認后,請輸入 wget ftp://ftp.cohprog.com/pub/apache/module/1.3.0/mod_bandwidth.c 將源文件下載到服務器,然后請使用apxs對其進行編譯,編譯方法和mod_limitipconn的基本相同,如我輸入/usr/sbin/apxs -c mod_bandwidth.c -o /usr/lib/apache(Apache的模塊目錄),編譯程序會自動將編譯成功的mod_bandwidth.so文件放到Apache的模塊目 錄,您也可以自己確認一下,若是不正常,拷貝過去即可。

  mod_bandwidth運行時需要一些特定的目錄,按照默認情況,請運行以下命令創建并更改目錄的權限:

mkdir /tmp/apachebw
mkdir /tmp/apachebw/link
mkdir /tmp/apachebw/master
chmod -R 777 /tmp/apachebw

  然后再打開httpd.conf文件,加上以下內容

<IfModule mod_bandwidth.c>
BandWidthDataDir "/tmp/apachebw/"
BandWidthModule on
</IfModule>

  這時,我們就能夠對所需要限制帶寬的目錄進行相應的設置,此處的目錄請使用服務器的絕對路徑。如我們想限制服務器/home/www /thinkjam/download/soft目錄的下載速度,也就是限制網址http://download.thinkjam.org/soft目 錄下軟件的下載速度,則為httpd.conf文件增加以下內容

<Directory /home/www/thinkjam/download/soft>
BandWidth thinkjam.org 0 #來自thinkjam.org的下載不受速度限制
BandWidth 210.51.21 0 #來自210.51.21網段的下載不受速度限制
BandWidth all 327680 #來自其它網段的速度都限制為327680Byte,即30KB/s
</Directory>

  設置完畢后,重新啟動Apache服務,即可生效。

  mod_bandwidth還有許多其它有用的參數,如在中間加上MaxConnection 120則可以限制某個目錄的最多連接數,當超過指定連接數時,拒絕新的連接,此參數與mod_limitipconn模塊結合可以控制某個目錄的最多連接人數。

  其它的參數請朋友們到其官方網站 http://www.cohprog.com/v3/bandwidth/doc-en.html 察看相關的文檔。

  Apache的功能確實強大,很多功能都可以通過添加模塊來實現,在 http://modules.apache.org/ 可以找到更多的模塊,我們也可以編寫自己的模塊來實現相應的功能。

轉載于:https://www.cnblogs.com/villion/archive/2009/07/08/1893772.html

總結

以上是生活随笔為你收集整理的Linux下Apache并发连接数和带宽控制的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。