mod_cband는 apache 2.x버전에서 개별 홈페이지에 대한 트래픽 및 모니터 관리를 위한 모듈입니다. 도메인 별로 트래픽을 제한할 수 있으며, 트래픽 사용량을 확인할 수 있습니다.
1. mod_cband 설치
# cd /usr/local/src # wget https://fossies.org/linux/www/apache_httpd_modules/mod-cband-0.9.7.5.tgz # tar zxvf mod-cband-0.9.7.5.gz # cd mod-cband-0.9.7.5 # ./configure –with-apxs=/usr/local/apache/bin/apxs # make && make install |
* make시 오류 발생 (apache 2.4버전대에서 해당 오류가 발생합니다.)
# make /usr/local/apache/bin/apxs -Wc,-Wall -Wc,-DDST_CLASS=3 -c src/mod_cband.c /usr/local/apr/build-1/libtool –silent –mode=compile gcc -std=gnu99 -prefer-pic -DLINUX -D_REENTRANT -D_GNU_SOURCE -g -O2 -pthread -I/usr/include/libxml2 -I/usr/local/apache/include -I/usr/local/apr/include/apr-1 -I/usr/local/apr/include/apr-1 -Wall -DDST_CLASS=3 -c -o src/mod_cband.lo src/mod_cband.c && touch src/mod_cband.slo src/mod_cband.c: In function ‘mod_cband_create_traffic_size’: src/mod_cband.c:1054: warning: comparison with string literal results in unspecified behavior src/mod_cband.c:1054: warning: comparison with string literal results in unspecified behavior src/mod_cband.c:1058: warning: comparison with string literal results in unspecified behavior src/mod_cband.c:1058: warning: comparison with string literal results in unspecified behavior src/mod_cband.c: In function ‘mod_cband_get_dst’: src/mod_cband.c:1333: error: ‘conn_rec’ has no member named ‘remote_ip’ src/mod_cband.c: In function ‘mod_cband_get_remote_host’: src/mod_cband.c:1362: error: ‘struct conn_rec’ has no member named ‘remote_ip’ src/mod_cband.c:1363: error: ‘struct conn_rec’ has no member named ‘remote_ip’ src/mod_cband.c:1365: error: ‘struct conn_rec’ has no member named ‘remote_addr’ apxs:Error: Command failed with rc=65536 make: *** [src/.libs/mod_cband.so] Error 1make: *** [src/.libs/mod_cband.so] Error 1 # pwd /usr/local/src/mod-cband-0.9.7.5/src/.libs # ll → make에러가 발생한 위치에 mod_cband.c 파일이 존재하지 않은 상태에서 작업합니다. # vi /usr/local/src/mod-cband-0.9.7.5/src/mod_cband.c |
2. mod_cband 설정
# vi /usr/local/apache/conf/httpd.conf LoadModule cband_module modules/mod_cband.so → cband module이 생성되어 있는 부분 확인합니다.
해당 파일의 아래 하단에 설정 값을 입력합니다.
<IfModule mod_cband.c>
<Location /cband-status-me>
SetHandler cband-status-me
</Location>
<Location /~*/cband-status-me>
SetHandler cband-status-me
</Location>
<Location /cband-status>
SetHandler cband-status
Order deny,allow
Deny from all Allow from all → all 대신 IP입력하면 해당 IP에서만 상태페이지 접속 가능합니다.
</Location>
</IfModule>
# vi /usr/local/apache/conf/extra/httpd-vhosts.conf
<VirtualHost *>
ServerAlias [도메인 주소]
ServerName [서버 IP주소]
DocumentRoot [홈소스 위치]
CBandLimit 100Mi → 100mb 허용한다는 의미
CBandPeriod 1D → 1일간 적용
CBandExceededURL [적용할 도메인주소]/traffic_exceeded.html → 트래픽 초과시 보여지는 페이지
</VirtualHost>
httpd.conf와 vhost설정 후 아파치를 재시작 해줍니다.
# /etc/init.d/apachectl restart
|
[도메인]/cband-status 로 접속 시 해당페이지에서 확인이 가능합니다.