맛집 여행 캠핑 일상 생활

아파치2 트래픽 제어모듈 본문

LAMP

아파치2 트래픽 제어모듈

영은파더♥ 2016. 3. 14. 16:27

Apache mod-cband 모듈


아파치 2.x 에서 트래픽을 제어할 수 있는 모듈이다.


원 다운로드 링크 주소가 연결이 안된다.
그래서 여기다 첨부파일로 올림.

mod-cband-0.9.7.5.tgz


1. 첨부의 파일을 다운로드 받아서 서버에 업로드


2. 압축풀기

# tar xvzf mod-cband-0.9.7.5.tgz


3. 모듈설치

# cd mod-cband-0.9.7.5

# ./configure

# make

# make install


4. 설치확인

# cat /etc/httpd/conf/httpd.conf | grep "mod_cband"

위의 명령어로 아래의 결과가 나와야 한다.

LoadModule cband_module       /usr/lib64/httpd/modules/mod_cband.so


5. 접근허용 Auth User File 만들기 (패스해도 무방)

mkdir -m 755 /var/www/auth

htpasswd -bc /var/www/auth/.htpasswd 허용아이디 비밀번호


6. httpd.conf 에 아래 내용 추가

<IfModule mod_cband.c>

    CBandScoreFlushPeriod 100

    CBandRandomPulse Off

    <Location /cband-status>

        SetHandler cband-status

        AuthName "CBand Status Page"

        AuthType Basic

        AuthUserFile /var/www/auth/.htpasswd

        require valid-user

        Satisfy any

        Order deny,allow

        Deny from all

        Allow from 192.168.1. 접근허용IP

    </Location>

    <Location /cband-status-me>

        SetHandler cband-status-me

    </Location>

    <CBandUser user1>

        CBandUserSpeed 10Mbps 30 50

        CBandUserLimit 700Mi

        CBandUserExceededSpeed 5Mbps 30 50

        CBandUserPeriod 1W

        CBandUserPeriodSlice 1D

        CBandUserScoreboard /tmp/user1.scoreboard

    </CBandUser>

</IfModule>

BandUser user1

user1의 대역폭을 제한

◎ CBandUserSpeed 10Mbps 30 50

대역폭제한을 10Mbps로 설정, 초당 최대요청수 30개, 최대동시접속자수 50으로 제한한다는 의미이다.

◎ CBandUserLimit 700Mi

트래픽용량 제한을 700M Bytes로 설정한다는 의미인데 아래의 CBandUserPeriod 옵션에 따라 기간 설정이 가능하다.

용량단위 : K, M, G, Ki, Mi, Gi

예) 100K : 100 * 1000 Bytes

예) 100Ki : 100 * 1024 Bytes

◎ CBandUserExceededSpeed 5Mbps 30 50

위의 트래픽용량을 초과하였을 대역폭제한을 5Mbps로 설정, 초당 최대요청수 30개, 최대동시접속자수 50으로 제한한다는 의미이다.

◎ CBandUserPeriod 1W

CBandUserLimit 제한 기간을 1주일로 설정한다는 의미이다.

기간단위는 S, M, H, D, W 이면 순서대로 초, 분, 시간, 일, 주이다.

◎ CBandUserPeriodSlice 1D

기간을 나누는 옵션이다. 700Mi 제한이 일주일동안 제한인데 slice 하면 하루제한은 100M Bytes 이다. 하루제한은 100MB이지만 제한기간이 1주일로 설정되어 있기때문에 실제로 트래픽제한이 걸리진 않는다. cband-status 화면상에 보기좋게 표시하기 위해서다.

◎ CBandUserScoreboard /tmp/user1.scoreboard

스코어를 저장하는 옵션이데 이 옵션을 사용하면 아파치가 재시작되더라도 값을 기억하고 있다.

경로에 지정한 스코어파일은 아파치 권한으로 파일생성이 가능하여야 한다.


7. VirtualHost 설정

<VirtualHost *:80>

    <IfModule mod_cband.c>

        CBandUser user1

        CBandRemoteSpeed 192kb/s 3 5

    </IfModule>

</VirtualHost>

◎ CBandUser user1

VirtualHost 에서 BandUser 로 설정한 user1 옵션을 사용하겠다는 의미이다.

◎ CBandRemoteSpeed 192kb/s 3 5

하나의 접속IP에 대해서 제한을 걸어주는 옵션이다.

 ( 같은 IP공유기로 여러명이 접속했다면 같은 IP이므로 똑같이 192KB/s 속도제한을 받는다.  )

최대 트래픽 속도는 192KBps 이고 초당 최대요청수는 3개, 최대동시접속수는 5로 제한한다는 의미이다.

단위가 조금 애매할지도 모르겠지만 kb/s 는 Kilo bytes per second의 의미이다.


8. cband status page

http://도메인주소/cband-status

http://도메인주소/cband-status-me

cband-status 는 전체를 모니터링할 수 있으며, cband-status-me 는 개별 virtualhost를 볼 수 있는 주소이다.


위에서 샘플로 언급된 옵션말고도 많은 옵션들이 있는데 이는 다른 사이트를 참고하기 바란다.



그리고 아파치 2.4 버전대에서 속도 제한은 아래 주소를 참고하면 된다.


https://ivps.tistory.com/15



Trackback : | Comments :