mod_cband는 트래픽을 제어할 수 있는 아파치 모듈입니다.
설치 할 때마다 찾아 다니기 힘드니 정리를 해 두고자 이렇게..
(아파치 2.4.x 에서 mod_cband 설치하기)
1. 설치 파일을 구합니다. (mod-cband-0.9.7.5.tgz)
2. 압축을 풀죠
# tar -zxvpf mod-cband-0.9.7.5.tgz
3. 압축이 풀린 디렉토리로 이동합니다.
# cd mod-cband-0.9.7.5
4. 설치 준비를 합니다.
# ./configure --with-apxs=/home/apache/bin/apxs
(--with-apxs=/home/apache/bin/apxs 는 아파치 apxs의 경로입니다.)
checking for gcc... gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
.
.
.
.
checking for sys/socket.h... yes
checking arpa/inet.h usability... yes
checking arpa/inet.h presence... yes
checking for arpa/inet.h... yes
configure: creating ./config.status
config.status: creating Makefile
5. 컴파일
# make
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 1
...에러난다 -_-
apache 2.4.x 부터는 소스에서 수정 해줘야 할게 있다고 합니다.
6. 소스 수정
# vi src/mod_cband.c
위 이미지에 표시한 곳을 수정해야 합니다.
1333 라인 : remote_ip -> client_ip
1342 라인 : remote_ip -> client_ip
1362 라인 : remote_ip -> client_ip
1363 라인 : remote_ip -> client_ip
1365 라인 : remote_addr -> client_addr
(vi 에서 라인 보는 명령어 :set nu)
7. 다시 컴파일
# make
/home/apache/bin/apxs -Wc,-Wall -Wc,-DDST_CLASS=3 -c src/mod_cband.c
/home/apache/build/libtool --silent --mode=compile gcc -std=gnu99 -prefer-pic -DLINUX -D_REENTRANT -D_GNU_SOURCE -g -O2 -pthread -I/home/apache/include -I/home/apache/include -I/home/apache/include -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
/home/apache/build/libtool --silent --mode=link gcc -std=gnu99 -o src/mod_cband.la -rpath /home/apache/modules -module -avoid-version src/mod_cband.lo
write "make install" to install module
8. 설치
# make install
/home/apache/bin/apxs -Wc,-Wall -Wc,-DDST_CLASS=3 -i -a -n cband src/mod_cband.la
/home/apache/build/instdso.sh SH_LIBTOOL='/home/apache/build/libtool' src/mod_cband.la /home/apache/modules
/home/apache/build/libtool --mode=install install src/mod_cband.la /home/apache/modules/
libtool: install: install src/.libs/mod_cband.so /home/apache/modules/mod_cband.so
libtool: install: install src/.libs/mod_cband.lai /home/apache/modules/mod_cband.la
libtool: install: install src/.libs/mod_cband.a /home/apache/modules/mod_cband.a
.
.
.
.
See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------
chmod 755 /home/apache/modules/mod_cband.so
[activating module `cband' in /home/apache/conf/httpd.conf]
설치 완료!
httpd.conf 를 보면
LoadModule cband_module modules/mod_cband.so
모듈이 추가 된 것을 확인 할 수 있습니다!
'개발 > 리눅스' 카테고리의 다른 글
Let's Encrypt 인증서 설치 및 적용하기 #1 (2) | 2018.10.17 |
---|---|
yum 으로 php 7.2 설치하기 (0) | 2018.09.20 |
아파치 이눔시키 (0) | 2018.06.27 |
파일 내 내용을 찾아보자 (0) | 2018.01.03 |
mod_cband 를 설치 해 보자 #2 (3) | 2017.06.07 |