精做高難度防水抓漏/壁癌/油漆等工程 責任施工、合約保固! | 新屋裝潢.舊屋裝修.合格裝潢 裝修證照.是專業施工品質的保障 |
使用mod_limitipconn.c來限制apache的並發 |
房東:泰王 發表時間:2007-02-21 | [檢舉] |
本文介紹透過mod_limitipconn模塊來限制apache的並發連接數的詳細方法。(2003-01-14 13:34:08) -------------------------------------------------------------------------------- By 風過留楓, 出處︰Linux技術中堅站 冷風 下載mod_limitipconn.c http://dominia.org/djao/limit/mod_limitipconn-0.04.tar.gz http://dominia.org/djao/limit/mod_limitipconn-0.04-1.i386.rpm (proxy client detection feature not enabled) http://dominia.org/djao/limit/mod_limitipconn-0.04-1.src.rpm 我用的是tar包下載的是mod_limitipconn-0.04.tar.gz,(該模塊已經可以支援apache2)在伺服器上執行# wget http://dominia.org/djao/limit/mod_limitipconn-0.04.tar.gz ;下載到本地 然後執行下面的命令編譯安裝.我的apache位於/usr/local/apache目錄 解壓縮: [root@ns chenlf]# tar zxvf mod_limitipconn-0.04.tar.gz mod_limitipconn-0.04/ mod_limitipconn-0.04/Makefile mod_limitipconn-0.04/README mod_limitipconn-0.04/apachesrc.diff mod_limitipconn-0.04/mod_limitipconn.c mod_limitipconn-0.04/ChangeLog 編譯安裝: [root@ns chenlf]# cd mod_limitipconn-0.04 [root@ns mod_limitipconn-0.04]# ls apachesrc.diff ChangeLog Makefile mod_limitipconn.c README [root@ns mod_limitipconn-0.04] # /usr/local/apache/bin/apxs -c -i -a mod_limitipconn.c gcc -DLINUX=22 -I/usr/include/db1 -fpic -DSHARED_MODULE -I /usr/local/apache/include -c mod_limitipconn.c gcc -shared -o mod_limitipconn.so mod_limitipconn.o [activating module `limitipconn in /usr/local /apache/conf/httpd.conf] cp mod_limitipconn.so /usr/local/apache/libexec/mod_limitipconn.so chmod 755 /usr/local/apache/libexec/mod_limitipconn.so cp /usr/local/apache/conf/httpd.conf /usr/local/apache/conf/httpd.conf.bak cp /usr/local/apache/conf/httpd.conf.new /usr/local/apache/conf/httpd.conf rm /usr/local/apache/conf/httpd.conf.new 修改配置檔案: 1全局控制: 在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 > 2 局部限制,你也可以在虛擬主機的配置檔案裡設定IP限制,方法是完全一樣: < VirtualHost xx.xxx.xx.xx > ServerAdmin [email protected] DocumentRoot /home/my ServerName www.my.com < IfModule mod_limitipconn.c > < Location / > # 所有虛擬主機的/目錄 MaxConnPerIP 5 # 每IP只允許\3個並發連接 NoIPLimit image/* # 對圖片不做IP限制 < /Location > < Location /mp3 > # 所有主機的/mp3目錄 MaxConnPerIP 2 # 每IP只允許\一個連接請求 OnlyIPLimit audio/mpeg video # 該限制只對視頻和音頻格式的檔案 < /Location > < /IfModule > ErrorLog /home/my/logs/error_log CustomLog /home/my/logs/access_log common < /VirtualHost > 3 此外必須將apache的ExtendedStatus設定為ON.在httpd.conf找到 # ExtendedStatus On 去掉前面的註釋即可 好了,全部配置結束,重起apache就可以生效了 |
廣利不動產-板橋在地生根最實在--新板特區指名度最高、值得您信賴的好房仲 完整房訊,房屋、店面熱門精選物件,廣利不動產 優質仲介,房屋租賃、買賣資訊透明,交易真安心! 廣利不動產-新板特區指名度最高、值得您信賴的好房仲 您的托付,廣利用心為您服務 |
1 樓住戶:小橋 發表時間:2007-02-23 | [檢舉] |
httpd 升級與 limitipconn 模組安裝 目的: 在已架設網站的 Apache HTTP Server 升級版本, 並加入 mod_limitipconn (限制同一 IP 最大 Connection 數量) 模組 環境: Fedora Core 1 httpd 2.0.47 → 2.0.55 下載並解包相關 Source Tar Ball cd /usr/local/src wget http://apache.cdpa.nsysu.edu.tw/httpd/httpd-2.0.55.tar.bz2 wget http://dominia.org/djao/limit/mod_limitipconn-0.22.tar.gz tar jxf httpd-2.0.55.tar.bz2 tar zxf mod_limitipconn-0.22.tar.gz 安裝 Apache HTTP Server 2.0.55 cd httpd-2.0.55 patch -p1 < ../mod_limitipconn-0.22/apachesrc.diff ./buildconf ./configure --prefix=/usr/local/apache2 make make install 安裝 mod_limitipconn 模組 cd ../mod_limitipconn-0.22 vi Makefile APXS=/usr/local/apache2/bin/apxs APACHECTL=/usr/local/apache2/bin/apachectl make make install 調整環境, 修改新的 httpd.conf cd /usr/local/apache2 rmdir logs ln -s /var/log/httpd logs 繼續使用原來存放 log 的地方 (/var/log/httpd) ln -s /var/run 讓 httpd.pid 一樣置於 /var/run (for logrotate) cp /usr/lib/httpd/modules/* ./modules 將原先的 module 複製過來 cd conf mv ssl.conf ssl.conf.bak ln -s /etc/httpd/conf.d/ssl.conf vi ssl.conf #LoadModule ssl_module... 待會在 httpd.conf 加入 LoadModule ssl_module, 所以這邊註解掉 vi httpd.conf 調整相關設定, 以符合原本的網站環境 修改: User nobody --> apache Group #-1 --> apache PidFile logs/httpd.pid --> run #ExtendedStatus On --> ExtendedStatus On 取消此行註解才能使用 limitipconn 模組 DocumentRoot "/usr/local/apache2/htdocs" --> "/var/www/html" ServerTokens Full --> Prod ServerSignature On --> Off 修改以上這兩行是為了隱藏伺服器資訊 ScriptAlias /cgi-bin/ "/usr/local/apache2/cgi-bin/" --> "/var/www/cgi-bin/" 新增: LoadModule dav_module modules/mod_dav.so LoadModule dav_fs_module modules/mod_dav_fs.so LoadModule ssl_module modules/mod_ssl.so LoadModule rewrite_module modules/mod_rewrite.so LoadModule php4_module modules/libphp4.so 視需求載入相關模組 AddType application/x-httpd-php .php 要能執行 php 網頁, 除載入模組外, 記得加上這行 DAVLockDB /var/lib/dav/lockdb 想使用 WebDAV 一定要加上這行 MaxConnPerIP 2 每個 IP 最多 2 個 Connection 更多的 mod_limitipconn 設置參考 停止原 HTTP Server 運作, 啟動新安裝之 HTTP Server /etc/init.d/httpd stop /usr/local/apache2/bin/apachectl -f /usr/local/apache2/conf/httpd.conf -k start 開機時, 自動啟動新安裝之 HTTP Server chkconfig httpd stop vi /etc/rc.d/rc.local /usr/local/apache2/bin/apachectl -f /usr/local/apache2/conf/httpd.conf -k start | |