아파치 1.x 에서의 트래픽 제한
출처 : http://linux.tini4u.net/stories.php?story=07/01/10/5993233
--------------------------------------------------------------------------------------
- 작성자 : 김혁중(티니) [sky(golbangi or at)tini4u.net]
- 작성일 : 2007-01-10
- 사이트 : http://linux.tini4u.net/
- 원제목 : 아파치 1.x 에서의 트래픽 제한
- 환 경 : CentOS 4.4, apache 1.3
- 키워드 : mod_throttle
--------------------------------------------------------------------------------------
이번 강좌는 아파치 1.x에서의 트래픽을 제한하는 모듈인 throttle에 대해서 다뤄보겠습니다.
이미 많은 분들이 아시겠지만 throttle은 각 호스트에 대한 트래픽을 다양하게 제한할 수 있는
모듈입니다.
throttle 모듈은 아파치 3rd party(Third-party) 모듈 이기 때문에, 아파치의 설치 방법에 따라서
그 설치법 또한 달라지게 되어 있습니다.
이곳 LTN의 웹서버 게시판에 보시면 아파치는 DSO와 Static 의 방식으로 운영될 수 있다는것을
확인하실 수 있을 것입니다.
1. mod_throttle 다운로드
이 강좌를 쓰는 시점인 2007년 01월 10일에는 현재 공식 개발사의 홈페이지를 가보게 되면
더이상 배포를 하지 않고 close 되었다는 문구를 보실 수 있습니다.
따라서 필자가 한글화 한 throttle 모듈의 소스를 필자의 개인 패키지미러에 올려두도록 하겠습니다.
테이블로 깔끔하게 정리해놨으니 기존의 throttle 모듈보다 보기 편하실 겁니다.
[root@localhost]# wget http://pkg.tini4u.net/www/3rd-party/mod_throttle.tar.gz [root@localhost]# tar xfz mod_throttle.tar.gz |
2. 아파치를 Static 으로 사용할 경우
아파치를 정적으로 빌드하여 운영할 경우에는 필요한 모듈을 미리 메모리에 적재해야 되기 때문에
아파치를 설치하기 전에 throttle 모듈도 같이 빌드를 해줘야 합니다.
빌드하는 방법은 아파치의 --add-module 옵션을 이용하시면 됩니다.
[root@localhost]# cd apache-1.3.37 [root@localhost]# ./configure --add-module=../mod_throttle/mod_throttle.c |
3. 아파치를 DSO 로 사용할 경우
아파치를 동적으로 빌드하여 운영할 경우에는 이미 so 모듈이 enabled 되어 있을 것입니다.
확인 방법은 httpd -l 을 했을 경우에 mod_so.c 가 출력이 되면 됩니다.
만약 출력이 되지 않는 경우 so 모듈을 따로 올려주셔야 됩니다.
[root@localhost]# cd mod_throttle [root@localhost]# make install |
아파치를 DSO로 운영하면 apxs를 사용할 수 있기 때문에 설치 방법또한 간단합니다.
만약에 make install로 설치가 안되시는 분은 직접 apxs를 이용해서 설치할 수도 있습니다.
[root@localhost]# /usr/sbin/apxs -aic mod_throttle.c |
4. 아파치 환경설정에서의 throttle 설정
앞서 말했듯이 throttle은 아파치의 3rd-party 모듈이기 때문에 아파치 위에서 작동을 합니다.
따라서 설정 또한 아파치 환경설정 파일인 httpd.conf에서 해주게 됩니다.
|
※ SetHandler 설명
throttle-status -> 관리자 페이지 입니다. 따라서 접근을 허용할 IP를 입력해주셔야 됩니다.
throttle-me -> 사용자 페이지 입니다.
5. throttle 적용
throttle은 각 호스트에 대해서 여러가지 지시자를 사용하여 설정 할 수 있습니다.
아래는 여러가지 지시자중 하나인 가장 많이 사용되는 ThrottlePolicy 를 사용한 예제 입니다.
여러가지 지시자와 정책에 대한 설명은 다음 섹션에서 설명하도록 하겠습니다.
|
※ 위 설정은 1day 동안 100M의 트래픽을 허용하겠다는 설정 입니다.
6. throttle 정책
|
7. throttle 지시자
이름: ThrottleClientIP 설명: 접속한 IP를 설정해주면 됩니다. 문법: ThrottleClientIP [보여줄 IP수] [정책] [제한] [기간] |
이름: ThrottleContentType 설명: 통계를 출력할 형태를 지정하면 되며, text/html, text/plain 중에 하나를 넣으면 됩니다. 문법: ThrottleContentType [문자열] |
이름: ThrottleIndicator 설명: 결과에 따른 컬러를 조정할 수 있는 퍼센테이지와 컬러를 지정합니다. 문법: ThrottleIndicator [컬러] [NN%] 예제: ThrottleIndicator green 60 ThrottleIndicator yellow 80 ThrottleIndicator red 90 |
이름: ThrottleLockFile 이름: ThrottleRuntimeFile 설명: throttle에서 사용하는 파일을 강제로 지정해줄 수 있습니다. 문법: ThrottleLockFile [파일명] 문법: ThrottleRuntimeFile [파일명] |
이름: ThrottleMaxDelay 설명: throttle의 최대 Delay 시간을 정합니다. 기본은 60초이며, 0은 제한하지 않겠다는 뜻입니다. 문법: ThrottleMaxDelay [N/sec] 예제: ThrottleMaxDelay 60 |
이름: ThrottlePolicy 설명: 일반적으로 정책은 Volume과 Request를 사용합니다. 문법: ThrottlePolicy [정책] [제한] [기간] 예제: ThrottlePolicy Volume 100M 1d |
이름: ThrottleRefresh 설명: throttle 통계화면의 리로드 시간을 정합니다. 문법: ThrottleRefresh [N/sec] 예제: ThrottleRefresh 60 |
이름: ThrottleRemoteUser 설명: 접속자당 제한을 하는 지시자 입니다. 문법: ThrottleRemoteUser [크기] [정책] [제한] [기간] |
이름: ThrottleUser 설명: 로컬 사용자 제한을 등록합니다. 분산된 호스트를 관리할 때 사용합니다. 문법: ThrottleUser [사용자] [정책] [제한] [기간] |
8. 통계화면 보기
관리자모드 - http://foobar.com/throttle-status
사용자모드 - http://foobar.com/throttle-me
- http://foobar.com/~foo/throttle-me
9. 통계화면에 아파치 인증 걸기
보통 통계화면의 제한은 IP의 형태로 제한을 하는게 정설입니다.
그렇지만 IP가 자주 변경되는 분들은 매번 IP를 변경해주는것도 하나의 일이 될 수 있습니다.
따라서 이런 경우에는 아파치 인증을 걸어서 사용하시면 편리할 것입니다.
|
'리눅스 > APACHE' 카테고리의 다른 글
서치엔진(robot.txt )을 피하는 방법 (0) | 2015.01.16 |
---|---|
아파치 2.x 에서의 트래픽 제한 (0) | 2015.01.16 |
yum 으로 APM 설치하기 (0) | 2015.01.16 |
[ERROR] libphp5.so: cannot restore segment prot after reloc: Permission denied (0) | 2015.01.16 |
apache - tomcat 커넥터 다운로드 받는곳 (0) | 2015.01.16 |