Home | Data Center | Contact US | Login

제목 bandwidth모듈을 이용한 대역폭 제한하기
첨부파일 bandwidth모듈을 이용한 대역폭 제한하기.pdf 작성일 2007-01-30 14:33:45

작성자 : 기술지원부 김 삼 수

bandwidth모듈을 이용한 대역폭 제한하기

mod_bandwidth는 방문자의 접속시 트래픽을 얼마이하로 제한하는 설정입니다. 즉, 서버 한대에 여러개의 웹사이트가 운영되고 있는 상황에서 특정웹사이트가 전체 트래픽의 대부분을 차지할 때에 특정 웹사이트의 전체 트래픽을 얼마이하로 제한하기 위한 설정방법이라고 할 수 있습니다.

bandwidth 설치

① mod_bandwidth.c 다운로드

wget은 웹에서 자동적으로 파일을 받아오는데 사용되는 유틸리티이며 HTTP, HTTPS, FTP 프로토콜을 지원합니다.
mod_bandwidth.c 파일을 다운로드 합니다.
[root@nextline ~]# wget
ftp://ftp.cohprog.com/pub/apache/module/1.3.0/mod_bandwidth.c


② mod_bandwidth.c 컴파일

모듈을 적재하기 위해 mod_throttle.c파일을 컴파일 합니다.

apxs는 아파치 서버의 확장 모듈을 컴파일하고 설치하는 도구입니다.

옵션 설명
-i : 라이브러리 디렉토리에 so 파일 복사하라는 옵션
-a : httpd.conf 파일에 LoadModule 설정을 하라는 옵션
-c : 컴파일 하라는 옵션

[root@nextline ~]# /usr/local/apache/bin/apxs -i -a -c mod_bandwidth.c



③ mod_bandwidth.so 파일 확인

컴파일 후 공유라이브러리 파일의 생성을 확인합니다.
[root@nextline ~]# ls /usr/local/apache/libexec



④ 모듈적재 확인

vi 에디터 사용법

사용형식 : vi [옵션] [생성할 파일명/편집할 파일명]

vi 에디터는 입력모드, 명령모드, 실행모드로 구분됩니다.

입력모드 : vi 편집화면에서 문자를 입력할 수 있는 모드로서 입력모드로 진입하기 위해서는 i, a, o, I, A, O, R등이 있습니다. 즉 초기 vi 편집기 모드는 명령어 모드로 진입을 하기 때문에 문자를 입력하기 전에 앞의 단축키 중 하나를 먼저 입력해야 원하는 문자를 입력할 수 있습니다.
명령모드 : 커서이동/문자삭제/문자(열)교체/문자열검색 등을 할 수 있는 모드로서 입력모드에서 편집이 완료되면 Esc키를 눌러 명령모드로 진입하면 됩니다.

x : vi 명령모드에서 커서위치의 한 문자 삭제
dw : vi 명령모드에서 커서위치의 한 단어 삭제
dd : vi 명령모드에서 커서위치의 행 삭제
Ndd : vi 명령모드에서 커서위치의 여러 행 동시 삭제

실행모드 : 특별한 명령어를 실행하는 모드로서 명령어모드에서 ":"(콜론)를 누르면 vi 화면 하단 좌측에 vi 특수명령어를 입력할 수 있습니다.

실행모드의 일반적으로 쓰이는 특수 명령어
q : 수정 작업이 이루어지지 않은 상태에서 vi 편집기에서 빠져나옵니다.
q! : 수정 작업이 이루어진 부분을 적용시키지 않고 vi 편집기를 강제로 빠져나옵니다.
w : 수정된 작업을 저장합니다.
wq : 수정된 작업을 저장하고 vi 편집기에서 빠져나옵니다.

초기 명령어모드 -> 입력모드진입 -> 편집 -> 명령어모드 -> 실행모드 -> 종료

컴파일 작업으로 httpd.conf파일에 모듈이 등록되었는지 확인합니다.
[root@nextline mod_throttle-3.1.2]# vi /usr/local/apache/conf/httpd.conf


LoadModule throttle_module libexec/mod_throttle.so


⑤ 디렉토리생성

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

[root@nextline ~]# mkdir -p /tmp/apachebw/master
[root@nextline ~]# mkdir -p /tmp/apachebw/link
[root@nextline ~]# chown -R nobody.nobody /tmp/apachebw
[root@nextline ~]# chmod -R 777 /tmp/apachebw



⑥ httpd.conf 파일설정

대역폭 제한을 위하여 httpd.conf파일을 수정 편집합니다.
[root@nextline ~]# vi /usr/local/apache/conf/httpd.conf



⑦ 가상호스트(홈페이지) 별 대역폭 제한

ex) nextline.co.kr 도메인에 대한 대역폭 제한 설정입니다.


DocumentRoot /home/nextline/public_html
ServerName nextline.co.kr
ServerAlias www.nextline.co.kr
BandWidthModule On
LargeFileLimit 51200 102400
MaxConnection 5


bandwidth모듈파일을 불러들이는 설정입니다.
BandWidthModule On
50M 넘는 파일은 100KByte/Sec 으로 제한 한다.
LargeFileLimit 51200 102400
동시에 5개의 접속을 허용한다.
MaxConnection 5



⑧ 지시자

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 보다 우선합니다.)

⑨ 아파치 재시작

mod_bandwidth 트래픽제한을 적용하기 위하여 아파치를 재시작 합니다.


  아파치 2.X 버전에서 mod_cband를 이용한 트래픽관리
  Awstats를 이용한 웹서버 로그분석





회사소개 개인정보취급방침 이용약관 이메일주소 무단수집거부 CONTACT US IDC 약도
회사소개 개인정보취급방침 이용약관 이메일주소 무단수집거부 CONTACT US IDC 약도 회사소개 개인정보취급방침 이용약관 이메일주소 무단수집거부 CONTACT US IDC 약도