오늘은 아파치 Cband 설치 및 설정에 대해서 말씀드리겠습니다.

함께 보면 좋은 기술 컨텐츠👇
✔ APM(Apache, PHP, MariaDB) 설치 및 구축 방법
✔ 아파치 httpd.conf 설정 방법

아파치 설치 및 설정에 말씀 드리기 전! Apache Cband가 무엇인지 알고 계신가요?

🔎 Apache Cband란?

Apache Cband란 아파치 사이트 상에서 가상 호스트의 접속량 및 트래픽량을 체크하여 어떤 ip가 접속하였는지 여부 확인 등을 진행하거나 가상 호스트에 트래픽 제한, 사이트 제한을 주는 용도로 사용되는 Apache의 Module을 말합니다.

▶ Cband 특징

– Cband 모듈을 사용하여 웹 서버의 트래픽을 제한하고 관리가 가능하다.
– Cband 모듈은 웹 서버의 가상 호스트 또는 디렉토리 단위로 대역폭 제한을 설정 할 수 있다.
– 특정 호스트,디렉토리의 트래픽을 제한하여 트래픽으로 인한 웹 서버의 과부하를 방지할 수 있다.
– 다양한 설정 옵션을 활용하여 대역폭 제한을 초과하였을 때 알림 설정이나, 
 대역폭 관련 정보를 모니터링할 수 있다.

🔎 Apache Cband 설치 방법?

# cd /usr/local/src
# wget https://fossies.org/linux/www/apache_httpd_modules/old/mod-cband-0.9.7.5.tgz
# tar zxvf mod-cband-0.9.7.5 # 압축 파일 압축 해제
# cd mod-cband-0.9.7.5 # 압축 해제 한 디렉터리로 이동
# ./configure –with-apxs=/usr/bin/apxs # 컴파일 진행
  (Apache를 yum 설치 한 경우 httpd-devel 설치해야 apxs 사용 가능)
# make & make install # 설치 진행

* 설치 완료 시 위의 문구와 같이 확인 가능합니다.
* Apache 2.4 버전인 경우 make간 오류 발생 시 해결 방법입니다. 아래의 내용 참고해주세요.

Apache 2.4 버전인 경우 make 간 오류 발생 참고 이미지 입니다.

[변경 전]
1333 p.add.sin.s_addr = inet_addr(r->connection->remote_ip);
1342 fprintf(stderr,”%s leaf %s\n”,r->connection->remote_ip,leaf);
1362 if (c->remote_ip != NULL)
1363 addr = inet_addr(c->remote_ip);
1365 addr = c->remote_addr->sa.sin.sin_addr.s_addr;

[변경 후]
1333 p.add.sin.s_addr = inet_addr(r->connection->client_ip);
1342 fprintf(stderr,”%s leaf %s\n”,r->connection->client_ip,leaf);
1362 if (c->client_ip != NULL)
1363 addr = inet_addr(c->client_ip);
1365 addr = c->client_ip->sa.sin.sin_addr.s_addr;

# vi /usr/local/src/mod-cband-0.9.7.5/src/mod_cband.c
remote_ip  client_ip 로 변경, 1333, 1342, 1362, 1363 Line
1333 : p.add.sin.s_addr = inet_addr(r->connection->client_ip);
1342 : fprintf(stderr,”%s leaf %s\n”,r->connection->client_ip,leaf);
1362 : if (c->client_ip != NULL)
1363 : addr = inet_addr(c->client_ip);

remote_addr  client_addr 로 변경, 1365 Line
1365 : addr = c->client_addr->sa.sin.sin_addr.s_addr;

위의 내용으로 변경 후 make & make install 진행합니다.(아래 이미지 참고)
* make : 정해진 스크립트를 따라 소스 코드를 컴파일 해주는 명령어
* make install : make를 통해 만들어진 설치파일(setup)을 설치하는 명령어

🔎 Mod_Cband 설정 방법?

1) 모듈 활성화 확인하기

# /etc/httpd/conf/httpd.conf

2) /usr/lib64/httpd/modules/mod_cband.so 생성 되어 있는지 확인하기(아래 이미지 참고)

3) httpd.conf 기본 설정하기

<IfModule mod_cband.c>
<Location /cband-status-me>
# Location /test-cband 로 지정 시 [http://domain/test-cbnad] 로 접근 가능
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’ or ‘IP’ 사용 가능, 관리자 IP 설정 권장 )
</Location>
</IfModule>

* 위의 설정 결과값 : test_domain 도메인이 하루동안 300M 트래픽 초과 시
   CBandExceededURL로 지정한 over_traffic_domain 로 리다이렉트 가능합니다.

(1) Virtual host name : 위 [httpd.conf]의 ServerName 에서 지정한 값으로 출력 가능합니다.
(2) reset all : 트래픽 초과되어 503 페이지 또는 CBandExceededURL 에서 지정한 페이지
  출력 시 ‘reset all’로 초기화하여 정상화 가능합니다.
(3) Remote IP : 위 [c]의 allow from [ip]로 관리자 접속 IP 지정 가능합니다.(권장)
(4) jmeter 툴로 서버 트래픽 발생 시킨 후 cband-status 확인이 가능합니다.

– Total Used 확인 시 300M 제한 값 초과 한 점 확인 가능합니다.
– 서비스 페이지 확인 시 503 페이지 출력되는 부분 아래의 이미지를 참고해주세요!

– ‘reset all’ 체크 하여 트래픽 초기화 진행 가능합니다.


오늘 말씀드린 아파치 Cband 설치 및 설정 방법! 도움이 되셨길 바랍니다.
다음 기술 블로그에서도 유용한 정보로 찾아뵙겠습니다!

추가로 궁금하신 사항이 있으시다면,
아래의 댓글 및 아이티이지 홈페이지 ‘문의하기‘를 통해 남겨주세요!

답글 남기기