강좌

  • 웹서버
  • 아파치
  • 톰켓
HOME > 강좌 >
강좌| 리눅스 및 오픈소스에 관련된 강좌를 보실 수 있습니다.
 
mod_throttle (트래픽 제한 모듈, 호스팅에 사용)
조회 : 6,283  


트래픽 제한 모듈 (mod_throttle) 설치 및 운영
        mod_throttle

우아..이놈때문에 고생을 하두 많이해서..ㅠㅠ
이놈은 접속자가 많은 사이트에서는 쥐약이다. 프로세스 수가 이유없이 증가한다.
무슨 이유인지는 모른다. 여튼 접속자가 많은곳에서는 사용 금지!!
  이놈은 사용량을 제한 하는 것 보다는, 어느정도 사용하는지 확인 하는 정도로 사용할 것이다.




1. 가상 호스트 별 접속량 제한 (mod_throttle) 1.3.X 에만 사용가능
(1) 개념
   가상 호스트별로 접속량을 기록하여, 일정량 이상이 되면, 접속 못하게 하는
  모듈인데... 정확한 개념은 모르겠당.^^;
  

(2) 설치
   - 먼저 모듈을 구한다. 어디서 ?? 개발자 사이트에서

     http://snert.com/Software/mod_throttle/index.shtml

   - 근데... 멀리갈필요 있남^^; 받아 두었는걸.~
    http://ftp.superuser.co.kr/pub/etc/mod_throttle312.tgz

   - 설치
        tar xvfz mod_throttle312.tgz
        rm -rf mod_throttle312.tgz
        cd mod_throttle-3.1.2

  (DSO 모드로 설치한다, 문제 생기면 제거 하기 쉬우니까~)
    /usr/local/apache/bin/apxs -i -a -c mod_throttle.c
  
   ## 옵션 설명.
      -i : 라이브러리 디렉토리에 so 파일 복사하라는 옵션
      -a : httpd.conf 파일에 LoadModule 설정을 하라는 옵션
      -c : 컴파일 하라는 옵션

(3) 설정
    - httpd.conf 파일을 열어서 다음과 같이 설정한다.

        ## 사용자별 트래픽 모니터링 하기 위한 모듈을 로드한다. (접속자 많을때는 하지말것)
        LoadModule throttle_module    libexec/mod_throttle.so
        
                #예) 전체 설정을 1일 300G 로 한다면, 아래와같다.
                #ThrottlePolicy Volume 300G 1d // 1일 300 M 로 제한

          # 전체적인 상황을 보는 페이지
            
                Order deny,allow
                Deny from all
                ## 특정 ip만 열어준다.
                Allow from 피씨아이피
                SetHandler throttle-status
          


          ## 사용자 자신의 접속량 점검
          
                SetHandler throttle-me
          

          
                SetHandler throttle-me
          

         ## 통계결과를 3초에 한번씩 갱신하여 보여준다.((기본은 60)
         ThrottleRefresh 10
         ## 접속하는 ip들을 1000개 까지 보여주면 통계를 구하기 위해 제한을 두지 않았다.
         ThrottleClientIP 1000 none
         ## 아이피/~doly 으로 접속을 10초에 10번으로 제한하였다.
         ThrottleUser doly Request 10 10
        

        
## 정책들
None : 아무 정책이 없고, 단지 모니터링 용도로 사용할때 사용
Concurrent : 동시접속수를 제한하기위한 것인데.. 별루당
              (ThrottleClientIP, ThrottleRemoteUser와 같이 쓸수 없다.)
Document 요청제한수 기간 : Request와 비슷 단, html 형식의 문서만 카운트 한다.(그림파일 제외)
Idle 쉬는시간 기간 : 요청간에 쉬는 시간을 준다?? 왜??? <-- 이건 더 이해 해야 함.
Random 받아들이퍼센트 기간: 0이면 모두 거절, 100 이면 모두 허가, 중간갑이면 랜덤하게 허가^^;
Request 요청제한수 기간: 기간동안 받아들일 요청수 ^^;
Speed 제한용량 기간 : Volume 하고 비슷하지만, 요청을 거절하지 않고 연기(delay)시킨다.
Volume 제한용량 기간 : 기간동안 제한용량만큼을 준다.

## 항목들
SetHandler throttle-status : throttle의 상태를 보여준다.(관리자 모드)
    Context : server,,,

SetHandler throttle-me : throttle의 자기 상태를 보여준다.(사용자 모드)
    Context : server,,,

** ClinetIP별로 제한을 하기 위함((괜찮은 설정))
ThrottleClientIP 보여줄ip수 정책 제한 기간
    Context : server
    보여줄ip는 : 접속한 ip리스트 들이다.
    정책 : 위 정책들중의 하나를 선택하면 된다.^^ 제한,기간 위 정책에 따른다.

** 통계를 출력할 형태.(별의미 없다.)
ThrottleContentType 문자열
    Context : server
    문자열 : text/html, text/plain  이 둘중에 하나 넣으면 된다.

** 결과에 색을 달리할 퍼센테이지를 정한다. (별 의미 없다.)
    Context : server
ThrottleIndicator green 50
ThrottleIndicator yellow 75
ThrottleIndicator red 90

** throttle 에서 사용하는 파일들 (( 별 의미 없다.))
    Context : server
ThrottleLockFile /usr/local/apache/logs/throttle.lock
ThrottleRuntimeFile /usr/local/apache/logs/throttle.runtime

** Throttle 의 최대 Delay 시간 (기본 :60초,  0:제한하지 않음)
    Context : server
ThrottleMaxDelay 60

** Throttle 정책 설정  (가장 많이 사용 )
    Context : server,,,
ThrottlePolicy 정책 제한 기간
   가장 많이 사용한다. 정책은 Volume 관 Request 를 많이 사용해서 제한 한다.

** Throttle 통계화면 리로드 시간(기본 60초)
    Context : server
ThrottleRefresh 초단위시간
            
** Throttle RemoteUser ?? <== 이놈은 뭐에 쓰는 놈인지??
    Context : server
ThrottleRemoteUser 크기 정책 제한 기간


** 로컬사용자 제한 등록하기 (( 실 계정 사용자만 등록된다.)
    Context : server
ThrottleUser 사용자 정책 제한 기간


(4) 통계보는방법
    http://아이피/throttle-status   : 관리자 모드
    http://도메인/throttle-me       : 일반 사용자가 보는 통계 페이지
    http://아이피/~아이디/throttle-me

  본 강좌는 개발자의 페이지의 원문을 읽어보구 적용해본 소감을 적은 것입니다.
일반적으로 알려진 강좌에는 숨어있는 기능이 없기에 이렇게 메뉴얼을 편역하게 되었습니다.

[원글링크] : https://www.linux.co.kr/home2/board/subbs/board.php?bo_table=lecture&wr_id=889


이 글을 트위터로 보내기 이 글을 페이스북으로 보내기 이 글을 미투데이로 보내기

 
도리
도리(Doly)
(주)수퍼유저 기술이사 (CTO)
리눅스마스터 1급,2급 추천교재(2014년) 집필
리눅스마스터 1급,2급 전문위원(출제)(한국정보통신진흥협회, 2005년~)
SULinux 1.0, 1.5, 2.0, 2014 개발 총괄(sulinux.net, 1998년~)
SSU,LSCP,LSMP,CCMT외 다수 오픈소스 프로젝트 개발 및 운용 (lscp.sf.net외,2009년~)
리눅스 대량 시스템 구축 및 관리(5,000대리눅스 서버 구축 및 관리 경험, 2000년~)

E-Mail : doly골뺑이superuser.co.kr
소개 : 하루 하루 최선을 다합시다!!