테스트 사이트 - 개발 중인 베타 버전입니다

mod_bandwidth(트래픽 제한, 접속자당 제한)

· 19년 전 · 2933
트래픽 제한(접속당) 모듈 (mod_bandwidth) 설치 및 운영
mod_bandwidth

아파치에 접속하는 사용자들의 대역폭을 제한한다. mod_throttle 와 비슷하지만, 용도가 다르다.
이놈들은 아파치 정식 모듈이 아니니.. DSO모드로 올렸다가. 이상하면 내린다.^^;

1. 개념
한 접속당 일정양(Byte/Sec)을 정해 놓고, 그 양이 넘으면 delay 시켜 일정한 트래픽을 유지한다.

2. 설치
(1) 먼저 모듈을 구한다. 어디서 ?? 개발자 사이트에서
http://www.cohprog.com/v3/bandwidth/intro-en.html

wget ftp://ftp.cohprog.com/pub/apache/module/1.3.0/mod_bandwidth.c
(2) 컴파일 및 설치 (apxs 를 사용하여 한방에 끝낸다.)
/usr/local/apache/bin/apxs -i -a -c mod_bandwidth.c
## 옵션 설명.
-i : 라이브러리 디렉토리에 so 파일 복사하라는 옵션
-a : httpd.conf 파일에 LoadModule 설정을 하라는 옵션
-c : 컴파일 하라는 옵션

3. 설정
(1) httpd.conf 파일을 열어서 다음과 같이 설정한다.

## 1인 트래픽 제한 모듈 로딩.
LoadModule bandwidth_module libexec/mod_bandwidth.so

아파치가 실행할때의 사용자권한(nobody 또는 apache )으로 읽기,쓰기,실행권한이 있는 디렉토리가 있어야 한다.
기본적으로 /tmp/apachebw , /tmp/apachebw/link , /tmp/apachebw/master 이렇게 생성한다.
변경하려면 BandWidthDataDir 지시자를 이용한다.
(위 디렉토리에 문제가 있으면 error로그 파일에 남기고 ,기능은 비활성화 된다.)


지시자:
* BandWidth 에서 사용할 임시 디렉토리 지정 (기본:/tmp/apachebw)
BandWidthDataDir 디렉토리:
Context : server

* BandWidthModule 사용 여부 (기본 Off)
BandWidthModule On 또는 Off
Context : server,
가상호스트 안에 사용할경우 가상호스트 마다 BandWidthModule On 설정을 하여야 하며,
지시자 안에 넣을때는 따로 넣어주지 않아도 된다.

* BandWidth 에서 지연할 시간 설정 (microsecond 단위)
BandWidthPulse
Context : server
예전에는 지연시간이 1초로 고정되어 있었다. 이 말은 512Bit/sec 라면. 1KBit 를 보내려면,
1KBit을 보낸후에 2초 기다린후 512Bit 을 보냈다. 그렇지만, "BandWidthPluse 1000000" (1초)를 설정하면,
512Bit을 보내고 1초 기다린후 512Bit을 보낸다.
이 값을 설정하면, 보다 부드럽게 제한하면서 보낼수 있다. 설정값을 (1/5 초) 이상 사용하길 권장한다.
장점 : 부드럽게 트래픽을 제한할 수 있다.
단점 : 패킷의 양이 많아지며, 값이 적을수록 서버에 부하를 많이 준다.

* BandWidth 를 통한 대역폭 제한
BandWidth
Context : Directory
domain,ip등은 접속하는 사용자의 ip및 도메인이다. ip 는 넷마스크를 적용할 수 있다.
rate : 바이트 단위 초당 대역폭, 0은 제한을 두지 않음.

* 큰 파일만 대역폭 제한
LargeFileLimit
Context : Directory
filesize : filesize 는 파일크기(KByte)이 파일 크기 이상에멘 rate 적용
rate : 바이트 단위 초당 대역폭(Byte/Sec), 0은 무제한

* 최대 연결수 제한 (기본 0 제한없음)
MaxConnection
Context : Directory
동시연결수가 connections 이상이면 연결을 거부한다.
(가상 호스트별 최대 동시 연결수 제한에 좋을것 같음^^;)

* 최소 대역폭 설정 (기본 255Byte/Sec , 0을 설정해도 255 이다., -1을 넣으면 최소대역폭은 0이 된다.)
MinBandWidth
(BandWidth, LargeFileLimit 보다 우선한다.)


예)) 가상호스트 속에 들어간다.
BandWidthModule On
## 50M 넘는 파일은 100KByte/Sec 으로 제한 한다.
LargeFileLimit 51200 102400
## 동시에 5개의 접속을 허용한다.
MaxConnection 5

(( 주의 ))
mkdir -p /tmp/apachebw/master/
mkdir -p /tmp/apachebw/link
chown -R nobody:nobody /tmp/apachebw

이렇게 디렉토리를 만들어주지 않으면 작동하지 않는다.. error_log 에 로그만 뿌린다.^^<div class='small'>[이 게시물은 관리자님에 의해 2011-10-31 17:30:25 Apache에서 이동 됨]</div>

댓글 작성

댓글을 작성하시려면 로그인이 필요합니다.

로그인하기

게시글 목록

번호 제목
8050
8048
19969
19968
19967
19966
19965
19964
19963
19962
19961
28345
31017
19960
19959
19958
19957
8039
8035
8029
28344
28339
8019
28338
8017
8010
8007
8004
8003
28332
28322
7999
28317
20956
7992
20945
28314
20936
20931
7986
20925
7982
7979
7978
7975
28307
7973
7966
28305
7963
28300
7961
28297
28295
7959
19948
19947
28292
31016
19946
19945
28286
7958
7956
7952
7946
28285
28283
19943
7944
7936
7931
28279
24666
24663
7928
7923
19941
28274
28257
28249
28248
7914
7912
7911
20912
7908
31755
28233
28232
28228
7903
28217
20900
24662
20891
20882
19936
20853
31011