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

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

· 19년 전 · 2940
트래픽 제한(접속당) 모듈 (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>

댓글 작성

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

로그인하기

게시글 목록

번호 제목
28213
31006
7898
7897
19935
7892
7885
31005
28209
7880
7877
7871
7865
7862
7858
7852
19933
19931
19928
19927
31003
19920
28206
19918
28200
7850
19916
28180
28165
19911
7842
7838
7830
7818
28150
19906
19905
19903
19901
19900
28145
7815
31002
7803
7799
7785
19898
7780
7779
7777
7776
7775
7758
19893
19892
19891
20850
19885
7752
7747
7738
19883
7735
28139
7734
7731
7725
7717
19879
7715
7710
19858
7709
7703
28134
28129
7694
7690
28125
7672
7660
28111
19857
19856
7658
28106
28098
7655
28095
7651
19851
7646
19850
24661
28089
7633
7623
28087
28085
7620