mod_cband 可以達到對 virtualhost 作頻寬、連線數限制,且總流量到了某階段可以重導至某個頁面作提示或者直接對速度作設限

1.) yum 安裝 mod_cband

2.) 設定狀態瀏覽,vi /etc/httpd/conf.d/mod_cband.conf

LoadModule cband_module         modules/mod_cband.so

<Location /cband-status>
SetHandler cband-status
Order allow,deny
Allow from 127.0.0.1/32 10.1.1.0/24
</Location>

<Location /cband-status-me>
SetHandler cband-status-me
Order allow,deny
Allow from 127.0.0.1/32 10.1.1.0/24
</Location>

3.) 瀏覽 web,http://ssorc.tw/cband-status

圖1 cband-status

4.) 限制下載速度

<VirtualHost *:80>
DocumentRoot /var/www/html/
ServerName ws1.ssorc.tw
CustomLog logs/ws1.ssorc.tw-access_log combined
ErrorLog logs/ws1.ssorc.tw-error_log
RewriteEngine On
RewriteOptions inherit

CBandSpeed 10240 10 30                     # CBandSpeed 設定給這個 virtualhost 總配給
最大多少頻寬kbps、每秒10個要求、最大30個連線
CBandRemoteSpeed 100kb/s 3 2           # CBandRemoteSpeed 設定每個 Client 的配給
100kbytes、每秒3個要求、2個連線

</VirtualHost>

<VirtualHost *:80>
DocumentRoot /var/www/html/
ServerName ws2.ssorc.tw
CustomLog logs/ws2.ssorc.tw-access_log combined
ErrorLog logs/ws2.ssorc.tw-error_log
RewriteEngine On
RewriteOptions inherit

CBandSpeed 1024 10 30
CBandRemoteSpeed 10kb/s 3 2

</VirtualHost>

 

圖2 cband-status

5.) 設定頻寬流量配額

a) mkdir /var/run/cbandscoreboard/ ; chown apache.apache /var/run/cbandscoreboard/

b) vi /etc/httpd/conf.d/mod_cband.conf

 

<VirtualHost *:80>
DocumentRoot /var/www/html/
ServerName ws2.ssorc.tw
CustomLog logs/ws2.ssorc.tw-access_log combined
ErrorLog logs/ws2.ssorc.tw-error_log
RewriteEngine On
RewriteOptions inherit

CBandSpeed 1024 10 30
CBandRemoteSpeed 50kb/s 3 2

CBandLimit 1000                                                                                       # 將總配給限在 1000 Kbytes
CBandExceededURL http://ssorc.tw/CBandDefaultExceededURL.html      # 當超過總量時重導至某個網頁

# 情況一: 當量超過時,現在正在下載的檔案仍然持續以同樣的速度繼續抓取
# 情況二: 另一方案是可以設定當超過時之後的速度為多少,就是 CBandExceededSpeed 20kb/s 3 2

CBandScoreboard /var/run/cbandscoreboard/ws2.ssorc.tw                     # 分數計算儲存檔案
CBandPeriod 30M                                                                                      # 30分鐘重新計算,
# 這裡我們可以設定 4W,
# 用在限制一個月內可以使用的量

</VirtualHost>

圖3 cband-status

圖4 cband-status

Related posts 相關文章
apache httpd 2.4.58 有些安全性更新
More...
Apache 有 path traversal 目錄遍歷的漏洞
More...
CentOS7 透過 systemd 自動讓服務 restart 重啟
More...
用 GoAccess 即時分析 IIS Access Log
More...

作者

留言

撰寫回覆或留言

發佈留言必須填寫的電子郵件地址不會公開。