1. 설치파일 받기
설정된 글씨체가 작게 설정되어있는관계로 설치전에 글씨체 크기를 좀 더 크게 해준다. #vi /usr/local/src/mod-cband-0.9.7.5/src/mod_cband.c 2468 번째 줄 "body { font-family: sans-serif; font-size: 0.9em; }\n" "td { padding-left: 0.5em; padding-right: 0.8em; }\n" -> 이부분을 적당한 크기로 수정해 주시면 됩니다.(이미 설치를 해버린 상태라면 make clean 후 make, make install)
혹은 #PATH=$PATH:/usr/local/apache/bin CBandExceededURL http://test.com/traffic_over.html # test.com에 대해 1일에 500Mbyte 의 트레픽을 허용하며 그 트레픽을 초과하면 http://test.com/traffic_over.html 을 출력합니다. <CBandUser user>
CBandUserLimit 300Mi CBandUserPeriod 1D </CBandUser> <VirtualHost *:80> ServerName oper.or.kr DocumentRoot /usr/local/www/data CBandUser user </VirtualHost> <VirtualHost *:80> ServerName ik.oper.or.kr DocumentRoot /usr/local/www/data CBandUser user </VirtualHost> 일종의 클래스 개념입니다. user 라는 클래서는 1일에 300Mbyte 의 전송량을 할당받고, oper.or.kr 과 ik.oper.or.kr 도메인이 user 클래스의 영향을 받는다는 구문입니다. CBandExceededURL 를 지정하지 않았기 때문에 트레픽을 초과하면 503 에러를 출력합니다. 1) 단위
* 전송속도 단위 o kbps, Mbps, Gbps - bits per second:1024, 1024*1024 , 1024*1024*1024 bps o kb/s, Mb/s, Gb/s - bytes persecond: 1024, 1024*1024, 1024*1024*1024 b/s o 기본 : kbps * 트래픽 쿼터 단위 o K, M, G - bytes: 1000, 1000*1000,1000*1000*1000 bytes o Ki, Mi, Gi - bytes: 1024, 1024*1024,1024*1024*1024 bytes o 기본 : K * 시간(기간) 단위 o S, M, H, D, W - 초, 분, 시간, 일, 주 o 기본 : S 2) 지시자들 (1) 이름 : CBandDefaultExceededURL 설명 : 제한을 초과했을때보여줄 URL (지정하지 않으면, 503 에러 페이지) 문맥 : Serverconfig 문법 :CBandDefaultExceededURL URL (2) 이름 : CBandDefaultExceededCode 설명 : 제한을 초과했을시 보여줄 에러코드 문맥 : Server config 문법 :CBandDefaultExceededCode HTTP_CODE 예제 :CBandDefaultExceededCode 509 (3) 이름 : CBandScoreFlushPeriod 설명 : scoreboard 파일에기록할 요청수, mod_cband 의 성능에 영향을 준다. 기본값 : 1 문맥 : Server config 문법 :CBandScoreFlushPeriod 요청수 예제 :CBandScoreFlushPeriod 100 ( 매 100번의 요청에 한번씩 scoreboard 파일에 기록) (4) 이름 : CBandSpeed 설명 : 가상호스트 도메인의 최대 속도,요청수, 접속수 설정 문맥 :<Virtualhost> 문법 : CBandSpeed kbpsrps max_conn kbps - 초당 최대 전송속도 rps - 초당 최대 요청수 max_conn - 최대 동시 접속수 예제 : CBandSpeed 102410 30 최대 1024kbps전송속도로 제한, 초당 10개의 요청 처리, 동시 접속을 30개로 제한. (5) 이름 : CBandRemoteSpeed 설명 : 접속자(IP)의 최대속도,요청수, 접속수 제한 (CBandSpeed와 비슷하지만, 접속자당 설정) 문맥 :<Virtualhost> 문법 : CBandRemoteSpeedkbps rps max_conn kbps - 초당 최대 전송속도 rps - 초당최대 요청수 max_conn - 최대 동시 접속수 예제 : CBandRemoteSpeed20kb/s 3 3 접속자(ip)에대해 최대 20kb/s , 초당 3개의 요청, 동시 접속 3개로 제한. (6) 이름 : CBandClassRemoteSpeed 설명 : 정의한 class(ip 범위)에대해 최대속도, 요청수, 접속수 제한 문맥 :<Virtualhost> 문법 :CBandClassRemoteSpeed class_name kbps rps class_name - 이미 정의한 클래스 이름 (IP범위) kbps - 초당 최대 전송속도 rps - 초당 최대 요청수 max_conn - 최대 동시 접속수 예제 : <CBandClassgooglebot_class> CBandClassDst 66.249.64/24 CBandClassDst 66.249.65/24 CBandClassDst 66.249.79/24 </CBandClass> CBandClassRemoteSpeedgooglebot_class 20kb/s 2 3 위에서 정의한클래스(googlebot_class)의 요청에는 20kb/s 의 전송속도, 초당 3개의 요청, 동시 접속 3개로 제한. (7) 이름 : CBandRandomPulse 설명 : 속도 제한을 위해서 임의의파형을 생성한 다음 처리하는 mod_cband의 처리 방법이다. 부하가 많을때는 자동 Off된다. 문맥 : Global 문법 : CBandRandomPulseOn/Off (8) 이름 : CBandLimit 설명 : 제한할 전송량을 설정한다.(기간은 CBandPeriod 에서 설정) 문맥 :<Virtualhost> 문법 : CBandLimit limit limit - 전송량, 사용단위: K (kilo), M (mega), G (giga), Ki (kibi), Mi (mebi),Gi (gibi) 예제 : CBandLimit 10M - 전송양을 10M(10*1000*1000bytes)로 제한한다. CBandLimit 10Mi - 전송양을 10M(10*1024*1024bytes)로 제한한다. (9) 이름 : CBandClassLimit 설명 : 정의한 class(ip범위)에대해 제한할 전송량 설정. 문맥 :<Virtualhost> 문법 : CBandClassLimitclass_name limit class_name - 이미 정의한 클래스 이름(ip범위) limit - 전송량, 사용단위: K (kilo), M (mega), G (giga), Ki (kibi), Mi (mebi),Gi (gibi) (10) 이름 : CBandExceededURL 설명 : 제한을 초과했을시 보여줄URL, 지정하지 않으면 503 에러 발생 (가상호스트에서) 문맥 :<Virtualhost> 문법 : CBandExceededURLURL (11) 이름 : CBandExceededSpeed 설명 : 전송양을 초과했을시 , 전송속도제한 설정. 문맥 :<Virtualhost> 문법 :CBandExceededSpeed kbps rps max_conn kbps - 초당 최대 전송속도 rps - 초당 최대 요청수 max_conn - 최대 동시 접속수 (12) 이름 : CBandScoreboard 설명 : 가상호스트의 scoreboard파일 지정. (성능향상을 위해 필요) 문맥 :<Virtualhost> 문법 : CBandScoreboardpath (path는 아파치(www)권한으로 쓰기가능해야 함) (13) 이름 : CBandPeriod 설명 : 용량제한기간(이 기간이 지나면,측정되었던 용량은 지워진다.) 문맥 :<Virtualhost> 문법 : CBandPeriod period period - 사용단위: S (초), M (분), H (시간), D (일), W (주) 예제 : CBandPeriod1W (1주일) CBandPeriod 14D (14일) CBandPeriod 60M (60분) (14) 이름 : CBandPeriodSlice 설명 : 기간이 길때는 나눌 기간을명시한다. 기본값 : slice_len = limit 문맥 :<Virtualhost> 문법 : CBandPeriodSliceslice_length 예제 : CBandLimit 100G CBandPeriod 4W CBandPeriodSlice 1W 4주는 1주일 단위로 나뉜다(4W/1W = 4). 용량은 100G/4=25G 1주에 25G, 2주째 50G 이렇게 나눠 처리 된다. (15) 이름 : <CBandUser> 설명 : 새로운 cband 가상 사용자설정 문맥 : Server config 문법 : <CBandUseruser_name> (16) 이름 : CBandUserSpeed 설명 : cband 가상 사용자의 속도,요청수, 동시 접속수 제한 문맥 : <CBandUser> 문법 : CBandUserSpeedkbps rps max_conn kbps - 초당 최대 전송속도 rps - 초당 최대 요청수 max_conn - 최대 동시 접속수 예제 : CBandUserSpeed100kb/s 10 5 (17) 이름 : CBandUserLimit 설명 : cband 가상 사용자의 저송용량 제한. 문맥 : <CBandUser> 문법 : CBandUserLimitlimit limit - 사용용량, 사용단위: K (kilo), M (mega), G (giga), Ki (kibi), Mi (mebi), Gi (gibi) 예제 : CBandUserLimit 10M CBandUserLimit 10Mi (18) 이름 : CBandUserClassLimit 설명 : cband 가상 사용자의 정의한class(ip범위)에 대해 제한할 전송량 설정 문맥 : <CBandUser> 문법 :CBandUserClassLimit class_name limit class_name - 지정한 class(IP범위)이름 limit -사용용량, 사용단위: K (kilo), M (mega), G (giga), Ki (kibi), Mi (mebi),Gi (gibi) (19) 이름 : CBandUserExceededURL 설명 : cband 가상 사용자의,제한을 초과했을시 보여줄 URL, 지정하지 않으면 503 에러 발생 ( 가상호스트에서 ) 문맥 : <CBandUser> 문법 :CBandUserExceededURL URL (20) 이름 : CBandUserExceededSpeed 설명 : cband 가상 사용자의,전송양을 초과했을시 , 전송속도 제한 설정. 문맥 : <CBandUser> 문법 :CBandUserExceededSpeed kbps rps max_conn kbps - 초당 최대 전송속도 rps - 초당 최대 요청수 max_conn - 최대 동시 접속수 (21) 이름 : CBandUserScoreboard 설명 : cband 가상 사용자의,scoreboard 파일 지정. 문맥 : <CBandUser> 문법 :CBandUserScoreboard path (path는 아파치(www)권한으로 쓰기가능해야 함) (22) 이름 : CBandUserPeriod 설명 : cband 가상 사용자의,용량제한기간(이 기간이 지나면, 측정되었던 용량은 지워진다.) 문맥 : <CBandUser> 문법 : CBandUserPeriodperiod period - 사용단위: S (초), M (분), H (시간), D (일), W (주) 예제 : CBandUserPeriod 1W CBandUserPeriod 14D CBandUserPeriod 60M (23) 이름 : CBandUserPeriodSlice 설명 : cband 가상 사용자의,기간을 나눌 기간 명시 기본값 : slice_len = limit 문맥 : <CBandUser> 문법 :CBandUserPeriodSlice slice_length 예제 : CBandUserLimit100G CBandUserPeriod 4W CBandUserPeriodSlice 1W 4주는 1주일 단위로 나뉜다(4W/1W = 4). 용량은 100G/4=25G 1주에 25G, 2주째 50G 이렇게 나눠 처리 된다.
기본적인 사용에 mod_throttle과 다른점은 Period와 트래픽Limit을 따로 지정해준다는것 외에는 없는것 같다. 사용하는 단위도 M, G 로 별다를바 없다. |
