일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- KB국민카드
- 자바스크립트
- 알리익스프레스
- Apache
- 가상서버호스팅
- 소비전력
- 아파치
- PHP-FPM
- 보르비스초월
- 알뜰폰
- 스톤에이지
- KB증권
- 킹북이초월
- 시놀로지
- html/css
- nginx
- 리눅스
- 램가스초월
- mysql
- iptime
- php
- 티스토리
- centos
- 복현오거리
- SKT
- jQuery
- ConoHa
- Rocky
- proxmox
- 윈도우10
- Today
- Total
맛집 여행 캠핑 일상 생활
아파치2 트래픽 제어모듈 본문
Apache mod-cband 모듈
아파치 2.x 에서 트래픽을 제어할 수 있는 모듈이다.
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 버전대에서 속도 제한은 아래 주소를 참고하면 된다.
'LAMP' 카테고리의 다른 글
아파치로그에서 특정문자열을 포함하는 로그 출력하기 (0) | 2016.04.01 |
---|---|
sed 명령어로 여러줄 삭제하는 방법 (0) | 2016.04.01 |
리눅스 카운트 명령어 wc (0) | 2016.03.08 |
PHP Allowed memory size 에러 (0) | 2016.03.08 |
외부 사이트 이미지 핫링크 차단 (0) | 2016.03.07 |