본문 바로가기

약간 전문적인 지식/IT

웹호스팅 서버 아파치 트래픽 제한걸기

웹호스팅 서버 아파치 트래픽 제한걸기

 

아파치 트래픽 제한.

1. 웹호스팅 아파치 트래픽 제한.

*먼저 http://www.snert.com/Software/mod_throttle/mod_throttle312.tgz
mod_throttle312.tgz 다운받는다.
#tar xvfpz mod_throttle312.tgz(압축푼다)
#cd /usr/local/src/mod_throttle-3.1.2

#make install 시킨다.
apxs -i -a -n 'throttle' mod_throttle.so
make: apxs: Command not found
make: *** [install] Error 127

(참고 인스톨시 에러가 발생한다. 그리고 APM세팅 방식을 DSO방식으로 설치한다.
STATIC방식으로 설치해도 되지만, 그 부분은 다시 설정해야한다.)

* static방식으로 설치 했을 경우 ...
configure 시--add-module=$mod_throttle_source_PATH/mod_throttle.c 추가.

* 그럼 DSO방식으로 설치 했을 경우...
* 모듈을 만들어준다.
[root@abcd mod_throttle-3.1.2]# /usr/local/apache/bin/apxs -c mod_throttle.c(모듈을 만들어준다)
gcc -DLINUX=22 -DUSE_HSREGEX -fpic -DSHARED_CORE -DSHARED_MODULE
-I/usr/local/apache/include -c mod_throttle.c
gcc -shared -o mod_throttle.so mod_throttle.o

* 에러부분에 추가 해주면 된다.

[root@abcd mod_throttle-3.1.2]# /usr/local/apache/bin/apxs -i -a -n 'throttle' mod_throttle.so
[activating module `throttle' in /usr/local/apache/conf/httpd.conf]
cp mod_throttle.so /usr/local/apache/libexec/mod_throttle.so
chmod 755 /usr/local/apache/libexec/mod_throttle.so
cp /usr/local/apache/conf/httpd.conf /usr/local/apache/conf/httpd.conf.bak
cp /usr/local/apache/conf/httpd.conf.new /usr/local/apache/conf/httpd.conf
rm /usr/local/apache/conf/httpd.conf.new

* 이부분까지 설치 과정 끝 그럼 httpd.conf 파일 설정.

%공통 설정 부분

Order deny,allow
Denny from all
Allow from 211.174....

앞에서 처럼 설정했으면 http://mydomain/throttle-status/로 접속시
모든 도메인에 대한 트래픽이나 접속자수 등의 중요한 정보가 노출된다. 그래서.
특정 IP대역에서만 (211.174..)접근이 가능하도록 제한한는 설정.

%전체 적으로 트래픽을 조정시 일반설정


ThrottlePolicy Volume 300M 1d // 1일 300 M 로 제한

SetHandler throttle-status

SetHandler throttle-me

Order deny,allow
Deny from all
Allow from all
SetHandler throttle-me

위의 설정은 전체적으로 트래픽을 제한한것이다.
그러나 실질적으로는 throttlePolicy none으로 설정해주는것이 대분이다.
throttle-me는 http://atpple.com/throttle-me/접속시 atpple.com이라는
하나의 도메인에 대해서만 정보를 확이 할 수 있더로 하는 방벙입니다.

%가상호스트

ServerAdmin webmaster@dummy-host.example.com
DocumentRoot /www/docs/dummy-host.example.com
ServerName dummy-host.example.com
ServerAlias example.com www.example.com
Throttle Policy Volume 100M 1d //1일 100M 제한
Throttle Policy Request 1000 1d //1일 히트수 1000회 제한
Throttle ClientIP 100 volume 200 300 //로그를 100K남기며 300초간 200K 의 전송량제한
ErrorLog logs/dummy-host.example.com-error_log
CustomLog logs/dummy-host.example.com-access_log common


위와 같이 설정 후 정송량이나 히트수등을 초과하면 example.com접속시 원래의 페이지
아니 503에러 화면이뜨게 된다. ErrorDoucumet503 /에러메세지 경로 혹은 주소로 redirect
설정을 추가해 주면 트래픽 초과시 503에러 화면 대신 리다이렉트하여 지정헤준 에러화면을
보여준다.
그래서 이 에러화면에 경고문이하니 추고 히트및 트래픽에 대해 경고문을 만든다.

% 일반 설정 부분

ThrottlePolicy Volume 300M 1d

SetHandler throttle-status


% 가상호스트 설정부분

ServerAdmin webmaster@example.com
DocumentRoot /home/atpple/public_html
ServerName example.com
ThrottlePolicy Volume 500M 1d // 하루에 전송량 500M


위와 같이 설정시 별도로 제한을 설정하지 않은 모든 도메인은 하루 정송량이 1일 300메가로
제한 되지만. example.com은 500M로 제한된다.

그러나 위와 같이 설정할 경우 제대로 동작하지 않은 경우가 있으므로 특정 도메인에 대해서
가상호스트 설정시 선택적으로 적용하는것이 좋다.

모든 설정에 대한 관리는 http://mydomain/throttle-status에서 가능하며 각 개인별 도메인에
대한 트래픽 사용 양이나 히트수 등은 http://mydomain/throttle-me에서 볼 수 있다.
특히 throttle-status의 경우 현재까지 사용한 트레픽 양을 초기화 시킬 수도 있으므로 꼭 특
정 IP에 대한 대역을 설정해주기 바랍니다.

 

 

[출처] http://blog.naver.com/ssol_x/90051264923

반응형