centos cband 설치 및 설정방법

| 2018년 2월 27일 | 0 Comments

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 파일이 존재하지 않은 상태에서 작업합니다.
total 0

# vi /usr/local/src/mod-cband-0.9.7.5/src/mod_cband.c
1365 addr = c->client_addr->sa.sin.sin_addr.s_addr;
:%s/remote_ip/client_ip/g
→ remote_ip를 모두 client_ip로 변경하면 됩니다., 1365라인에서 remote_addr을 client_addr로 변경하면 됩니다.

 

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 로 접속 시 해당페이지에서 확인이 가능합니다.

 

 

 

Category: LINUX

About the Author ()