1. 程式人生 > >利用apache限制IP併發數和下載流量控制

利用apache限制IP併發數和下載流量控制

一,為什麼要對IP併發數,下載流量進行控制

說正題之前,先給大家講個故事,那是在2007年,我進了一家公司,當時我們正在給達芙妮做電子商務網,www.idaphne.com。從三月份開始做的吧,九月份正式上線,上線後沒多長時間,有一天伺服器老是死,後來查了一下,一個IP訪問是特別大,然後運維人員把這個IP給封了就好了,但是過了一會,這種情況又出現了,然後又把新出的這個IP也封了。我當時就想肯定是別人買鞋,買的不爽,退錢又搞的人家不爽,人家才想起來搞你的網站了,像這種功擊很低階了,剛上線,運維人員估計還沒有來得及考慮這一些,這就是我們為什麼要對ip併發數進行控制的原因。對下載流量進行控制,是對網路頻寬進行管理,也是非常重要的。不能有很多人下東西,直接把你網站下掛了


二,安裝mod_limitipconn限制IP連線數

2,安裝:[[email protected] mod_limitipconn-0.22]# /usr/local/apache2/bin/apxs -c -i mod_limitipconn.c

3,配置如下vi httpd.conf

ExtendedStatus On  
LoadModule limitipconn_module modules/mod_limitipconn.so  
  
<IfModule mod_limitipconn.c>  
    <Location />                                              #對應根目錄  
          MaxConnPerIP 6                                  #最大併發數  
          NoIPLimit image/*                              #對圖片不做限制  
    </Location>  
    <Location /download>                             #對根目錄下面的download  
         MaxConnPerIP 1                                    #最大併發數為1  
    </Location>  
</IfModule> 

說明:解壓mod_limitipconn-0.22.tar.gz後,檔案裡面有一個README裡面有配置的拿出來,根據自己的需要改一改就行了,如果真的不會,可以上網上查,像apache用的人這麼多,我想你的問題別人也遇到過,一查肯定能查到。如果你想放到虛擬主機進行最大併發數控制,可以修改extra/httpd-vhost.conf把<IfModule mod_limitipconn.c>這個東西copy到<Virtualhost>中就可以了

三,安裝mod_bandwidth

mod_bandwidth可以對IP的併發數進行控制,也可以對下載流量進行控制,也可以對某個目錄的流量進行控制。

2,安裝:[[email protected] mod_bw]# /usr/local/apache2/bin/apxs -c -i mod_bw.c

3,配置如下vi httpd.conf 加上LoadModule bw_module modules/mod_bw.so
然後開啟vi httpd-vhosts.conf

listen 10004  
NameVirtualHost *:10004  
<VirtualHost *:10004>  
 DocumentRoot "/home/zhangy/www/test"  
 ServerName *:10004  
 BandwidthModule On  
 ForceBandWidthModule On  
 Bandwidth all 1024000  
 MinBandwidth all 50000  
 LargeFileLimit * 500 50000  
 MaxConnection all 6  
 ErrorLog "/home/zhangy/apache/www.test.com-error.log"  
 CustomLog "/home/zhangy/apache/www.test.com-error.log" common  
</VirtualHost> 

解壓bandwidth的壓縮檔案後,裡面有一個mod_bw.txt有詳細的說明和例項,下面是部分引數說明

1,BandWidth localhost 0                                      #對localhost不限速
2,BandWidth 192.168.1.5 102400                       #對192.168.1.5限速為100KB

3,BandWidth “u:^Mozilla(.*)” 10240              #用mozilla時限速10KB
4,BandWidth “u:wget” 102400                      #如果用wget下載時限速10KB

5,MinBandWidth all -1                                      #保證每個客戶端最高速度可達10KB
6,LargeFileLimit .jpg 100 10240                      #jpg檔案超過100KB,限速10KB

7,#下面的510挺好,如果不設定,apache自己會報錯,就根報404差不多,頁面非常的醜
ErrorDocument 510 /exceed_speed.html
BandWidthError 510

8,MaxConnection all 10                                       #所有ip最大連線數為10
9,MaxConnection 192.168.1.5 5                         #192.168.1.5最大連線數為5

四,測試

測試很簡單,你按著F5,讓他老涮新就行了,把最大連線數調小一點,一下就可以彈出503錯誤,看下圖


相關推薦

利用apache限制IP併發下載流量控制

一,為什麼要對IP併發數,下載流量進行控制 說正題之前,先給大家講個故事,那是在2007年,我進了一家公司,當時我們正在給達芙妮做電子商務網,www.idaphne.com。從三月份開始做的吧,九月份正式上線,上線後沒多長時間,有一天伺服器老是死,後來查了一下,一個IP

Apache限制IP併發流量控制

轉自:http://www.cszhi.com/20120512/apache-mod_bandwidth-mod_limitipconn.html 使用mod_limitipconn模組限制IP併發連線數 安裝: wget http://dominia.org/dja

nginx 限制ip併發限制速度

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

nginxapache限制IP地址訪問的設置方法

nginx和apache限制IP地址一、nginx禁止IP地址訪問1、在nginx配置文件中加入這個:2、重啟nginx服務二、apache禁止IP地址訪問1、更改vhosts.conf文件:NameVirtualHost 192.168.1.191 <VirtualHost 192.168.1.191

Nginx限制IP併發連線及每秒處理請求

為了防止伺服器被惡意採集或ddos攻擊給搞死, 所以給限個速。 這裡主要使用Nginx的ngx_http_limit_req_module和ngx_http_limit_conn_module來控制訪問量. 這兩個模組在Nginx中已內建, 在nginx.conf檔案

nginx限制連線下載速度

有時候為了限流,我們可以在nginx的server中使用limit_zone設定一個限制域,比如 limit_zone zone1 $binary_remote_addr 10m zone1為限制域

網站架設中的伺服器併發伺服器頻寬估計方法

       網站的負載能力主要還是依據每日PV的量。對於併發來講,每一個頁面請求可能有很多個HTTP請求,分別用來下載html,js,css和圖片等部分。同時,連線持續的時間也是一個重要的引數。一般來說,就這兩個引數,再加上PV的時間分佈,即一天的多少小時內產生這些PV,

伺服器併發訪問量計算與伺服器配置

併發訪問量是10分鐘100人線上?還是每秒100個併發請求?  如果是前者,以在10分鐘內,100人每人平均訪問10個pv,那麼每秒請求數就是100*10/10/60=1.66,對伺服器壓力幾乎就沒有啦,用個單路雙核的伺服器輕鬆搞定。  如果是後者,至少就得一個四核處理器,2G記憶體,10M獨享頻寬以上,才可

ORACLE如何限制ip段登入登入之後記錄資訊

CREATE USER DBCONFIG IDENTIFIED BY "DBCONFIG" GRANT UNLIMITED TABLESPACE TO DBCONFIG / ALTER USER DBCONFIG ACCOUNT LOCK / CREATE TABLE D

apache 限制IP訪問

<Directory "/var/www"> Options All AllowOverride None Order Deny,Allow Deny From all Allow From 192.168.0.0/24 Allow From 127.0.0.

linux——shell編程之函循環控制

read nbsp 進入 var 失敗 tin col img 命令執行 函數:實現獨立功能的代碼段   函數只有在調用時才會執行   語法一:     function F_NAME{       函數體     }   語法二:     F_NAME() {      

TCP/IP之TCP協議:流量控制(滑動視窗協議)

一、流量控制(滑動視窗協議) 1、流量控制是管理兩端的流量,以免會產生髮送過塊導致收端溢位,或者因收端處理太快而浪費時間的狀態。用的是:滑動視窗,以位元組為單位 2、視窗有3種動作:展開(右邊向右),合攏(左邊向右),收縮(右邊向左)這三種動作受接收端的控制。 合攏:表示已經收到相應位元組的確認了 展開:表

(TCP/IP的特性二)流量控制&阻塞控制

TCP流量控制之滑動視窗協議:     TCP協議中,傳送方和接收方均維護了一份視窗,視窗的大小就是TCP可以傳送的資料幀數,在傳送端,只有在傳送視窗內的資料才允許被髮送到接收端,而在接收端,也只有落到接收視窗的資料才允許被接收。這樣通過不斷滑動視窗實現資料的不斷髮送,也通過控

UDP迭代伺服器示例UDP流量控制的缺失

        我們知道, 有tcp伺服器, 也有udp伺服器, 這是按照協議來區分的。 如果按照服務方式來分, 還可以分為迭代伺服器和併發伺服器。         所謂迭代伺服器, 就是單個程序/執行緒在單個埠上順序處理所有客戶端的請求, 而併發伺服器就不一樣了, 可以通

apache限制併發,IP,頻寬設定

給大家推薦兩個Apache模組,一個是mod_vhost_limit,用來限制請求併發數,一個是mod_limitipconn,用來控制Apache的併發聯接數,通過該模組可以限制同一來源IP的併發聯接數。另一個模組是bw_mod,用於Apache網站頻寬控制,可以根據來源

iptables利用connlimit模組限制同一IP連線

        轉:http://blog.51cto.com/mrxiong/1589429   connlimit模組允許你限制每個客戶端IP的併發連線數,即每個IP同時連線到一個伺服器個數。   connlimit模組主要可以限制內網使用者的網路使用,對伺服器而言則可以限制每個IP發起的連線數。

【轉載】Apache檢視連線限制當前的連線

起因:線上的一臺伺服器,最近總是出現 訪問 很慢的情況發生,點選一個連結要2秒鐘以上才能開啟,按照我們對於訪問人數的估計,伺服器應該不至於響應這麼慢,從而需要針對這個問題進行分析,來解決網站訪問過慢。 分析: 1、首先,在頁面訪問變慢情況發生時,使用 top 命令查看了伺服

檢視apache當前併發訪問程序數 ApacheLinux

轉自:http://rainwang.iteye.com/blog/742749 1、檢視apache當前併發訪問數:  netstat -an | grep ESTABLISHED | wc -l 對比httpd.conf中MaxClients的數字差距多少。 2、檢視有

ab(apache benchmark)的併發限制

使用ab的時候當併發數超過1024就會示出錯: windows下提示:apr_pollset_create failed: Invalid argument (22) linux下提示:socket: Too many open files (24) 下面是從CSDN轉的一篇linux下的解決辦法 ====

Apache限制下載執行緒與頻寬詳解

2014年放了一臺伺服器到資料中心,發現下載量很大,大部份是用迅雷下載這樣會造成伺服器負擔過大,有人下載時會打不開網頁的現象,所以網上查詢解決下載限制的方法。 找到mod_limitipconn與mod_bw這兩個模組,前者是限制下載執行緒數,後者是限制頻寬但是發現,網上9