Server & OS

Throttle을 설치해보자 (웹서버 트래픽 조절하기)

컨텐츠 정보

본문

안녕하세요
Throttle강좌를 시작하겠습니다

초보자 분들은, Throttle모듈을 설치하기시가 어려우실 거에요.
저또한 그랬구요.

오늘 과감하게 저의 허접?비법을 여러분과 함께 공유할까 합니다.

일단 Throttle의 공식 싸이트를 가셔서 한번 둘러 보세요
주소는 http://www.snert.com/Software/mod_throttle/ 이랍니다.

Throttle은 서버의 트래픽 설정을 가능하게 해주는 것입니다.
웹호스팅을 하시는 분에게는 편리한 놈이랍니다.

웹호스팅 사이트를 돌아다니다보면
" 일일트래픽 500M , 혹은 일일 히트수 1000 히트 제한 "
이런 글을 볼 수 있습니다.

저런것은 보통의 경우 throttle을 많이 사용하더군요.


이제 슬슬 설치하여 볼까요?

차례를 살펴보면~~
-------------------------------------------------------------------
0.  아파치 설치하기

1.  아파치 설치방법(1)
1-1.아파치를 DSO으로 설치하기
1-2.아파치를 DSO로 설치하였을 경우 throttle을 설치하는 방법

2.  아파치 설치방법(2)
2-1.아파치를 static으로로 설치
2-2.아파치를 static으로 설치하였을 경우 throttle을 설치하는 방법

3.아파치의 httpd.conf설정하기
------------------------------------------------------------------
(아파치, PHP, Mysql, throttle을 설치하는 모습을 보여주면 좋겠지만, 저러한 것들은 다른 글을 참고하세요.)

저는 PHP와 throttle을 설치하는 방법만을 알려드릴께요.

(여기서 너무 자세한 설명은 불가능 하므로, 도중도중 모르시는 부분은 http://kldp.org 혹은 http://linux-sarang.net 혹은)
(http://phpschool.com에서 문의하시기 바랍니다.)

0. 아파치 설치하기

우선 아파치를 받아옵니다
그런데 throttle은 아파치 1.3.x만을 지원하므로, 1.3.x버젼을 받도록 합니다.(2.0버젼은 아직까지 지원을 하지 않더군요)

이제 아파치를 설지를 해야겠죠? 그런데 아파치를 설치하는데는 크게 2가지가 있습니다
rpm설치와 소스설치가 있습니다.

throttle을 설치할 경우 아피치를 소스설치로 하는것이 좋습니다.

소스설치의 경우 또 2가지가 있답니다.
DSO설치와 Static설치가 있어요..

저 둘의 차이점은 이 페이지 맨 아래에 적어둘께요. 참고하세요~~

일단은 DSO설치방법을 살펴봅시다.




1.  아파치 설치방법(1)

1-1.아파치를 DSO으로 설치하기

아파치를 아무곳에나? 받은후에 압축을 풉니다.
그런후에 압축을 푼 폴더로 이동을 합니다.
ex)#tar xvfz apache_1.3.29
  #cd apache_1.3.29

이동을 한 후에, 환경설정을 해야합니다.
[root@ apache_1.3.27]# ./configure --prefix=/usr/local/apache \\
--enable-rule=SHARED_CORE \\
--enable-module=so --enable-shared=max \\


(참고로 php를 설치하셔야 하는분은
([root@ apache_1.3.29]# ./configure --prefix=/usr/local/apache \\
(--enable-rule=SHARED_CORE \\
(--enable-module=so --enable-shared=max \\
(--activate-module=src/modules/php4/libphp4.a \\

☆☆여기서 띄어쓰기를 주의하세요. 예를들어 apache\\같이 띄어쓰기를 하지 않을경우 설치가 제대로 되지 않습니다☆☆


이제 컴파일, 설치를 합니다
[root@ apache_1.3.27]# make
[root@ apache_1.3.27]# make install



1-2.아파치를 DSO로 설치하였을 경우 throttle을 설치하는 방법

DSO로 설치하였을 경우 throttle을 설치하기가 매우 쉽습니다.
일단 throttle설치파일을 받습니다.
받는곳은 http://www.snert.com/Software/mod_throttle  <--저곳에 있습니다.
귀찮으신 분은 http://www.snert.com/Software/mod_throttle/mod_throttle312.tgz  <--저것을 받으시면 됩니다.

받으신후 아무곳에나? 압축을 풉니다.
그리고 나서 압축을 푼 폴더로 이동합니다
ex)# tar xvfz mod_throttle312.tgz (압축풀기)
  # cd mod_throttle  (이동하기)

그리고 나서 설치를 하시면 됩니다.
# make install

그런데 여기서 잘 살펴보아야 할점을, 설치를 하는경우 apxs라는 파일을 사용하는데 그것은 아파치의 bin폴더에 있습니다.

보통 저 경로를 지정하지 않았을 경우, 에러가 나게 되지요
☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆
따라서, 압축을 푼 폴더로 이동을 하신후에
#PATH=$PATH:/usr/local/apache/bin
#export path
저 명령을 내리십시오.


저렇게 반드시 하신후에
#make install
저 명령을 하시기 바랍니다
☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆

이제 설치가 완료 되었습니다

httpd.conf파일을 설정을 하게 되면, 트래픽을 조정할수 있습니다.

설정방법은 "3.아파치의 httpd.conf설정하기"에적어놓았습니다. 반드시 보세요.


----------------------------------------------------------------------------------------------------
혹시 mysql이나 php등을 설치할때, 뭐가 뭔지 혼란이 오시는 분이 있을까봐, 제가 설치하는 모습을 그대로 재현해 보았습니다.
참고하세요.
[root@ ]# tar xvfz apache_1.3.27 -C /usr/local
[root@ apache_1.3.27]# ./configure --prefix=/usr/local/apache

[root@ ]# tar xvfz php-4.2.3 -C /usr/local
[root@ php-4.2.3]# ./configure --with-apache=../apache_1.3.27 \\
--with-mysql=/usr/local/mysql \\
--with-gd --with-gif-dir=/usr/lib \\
--with-png-dir --with-zlib-dir --with-jpeg-dir \\
--with-imap --with-imap-ssl --with-kerberos \\
--with-freetype-dir --enable-ftp --enable-socket \\
--disable-debug --enable-track-vars
[root@ php-4.2.3]# make
[root@ php-4.2.3]# make install

[root@ apache_1.3.27]# ./configure --prefix=/usr/local/apache \\
--enable-rule=SHARED_CORE \\
--enable-module=so --enable-shared=max \\
--activate-module=src/modules/php4/libphp4.a \\
[root@ apache_1.3.27]# make
[root@ apache_1.3.27]# make install


[root@ ]# tar xvfz mod_throttle312.tgz
[root@ ]# cd mod_throttle
[root@ ]# make install
-----------------------------------------------------------------------------------------



2.  아파치 설치방법(2)

2-1.아파치를 static으로로 설치

static으로 설치하는 방법도 DSO와 유사합니다.
웹에서 아파치를 다운로드 한후에(물론 1.3.x버젼이어야 합니다.)
압축을 푸시고, 압축을 푼 폴더로 이동을 합니다.(이동 방법은 좀전의 방법과 같습니다.)

이동후 저와같은 명령을 내리십시오.
# ./configure --prefix=/usr/local/apache \\
--add-module=src/modules/extra/mod_throttle.c

(참고로 php를 설치하셔야 하는분은
(# ./configure --prefix=/usr/local/apache \\
(--activate-module=src/modules/php4/libphp4.a \\
(--add-module=src/modules/extra/mod_throttle.c
(이와같이 하시면 됩니다.


☆☆여기서 띄어쓰기를 주의하세요. 예를들어 apache\\같이 띄어쓰기를 하지 않을경우 설치가 제대로 되지 않습니다☆☆

그후 아파치를 컴파일 설치하시면 됩니다
#make
#make install

설치가 잘 되었는지 알아보는 방법은 아래와 같습니다.

# /usr/local/apache/bin/httpd -l
Compiled-in modules:
  http_core.c
  mod_env.c
  mod_log_config.c
  mod_mime.c
  mod_negotiation.c
  mod_status.c
  mod_include.c
  mod_autoindex.c
  mod_dir.c
  mod_cgi.c
  mod_asis.c
  mod_imap.c
  mod_actions.c
  mod_userdir.c
  mod_alias.c
  mod_access.c
  mod_auth.c
  mod_setenvif.c
  mod_php4.c
  mod_throttle.c
suexec: disabled; invalid wrapper /usr/local/apache/bin/suexec



여기서 mod_throttle.c이 있다면, 설치성공^^

설치가 완료 되었으므로, httpd.conf를 설정을 하시면 끝납니다.

"3.아파치의 httpd.conf설정하기"에 적어놓았으니 반드시 읽어보세요



------------------------------------------------------------------------------------------
3.아파치의 httpd.conf설정하기

설정파일을 설정해 봅시다.
#vi /usr/local/apache/conf/httpd.conf

그러면 설정파일이 나타납니다.

일단 맨 아래에 이것을 추가하세요.

<IfModule mod_throttle.c>
        ThrottlePolicy none

        <Location /throttle-status>
        SetHandler throttle-status
        </Location>

        <Location /throttle-me>
        SetHandler throttle-me
        </Location>

        <Location /~*/throttle-me>
        SetHandler throttle-me
        </Location>
</IfModule>

그런후에

저렇게 한후에 가상 호스트 설정을 할수도 있습니다

방법은
<VirtualHost 123.123.123.123>
    ServerAdmin  dream@praise.co.kr
    DocumentRoot /home/dream/public_html
    ServerName  myserver.co.kr
    ServerAlias  www.myserver.co.kr
    Throttle Policy Volume 1024M 1d          //  1일 1G 제한
    ThrottlePolicy Request 1000 1d          // 하루 히트수 1000회 제한
    ErrorLog  /var/log/httpd/error_log
    CustomLog  /var/log/httpd/access_log common
</VirtualHost>
입니다.

http://자신의 아이피 혹은 도메인/throttle-status 에서,
서버에 설정된 대역폭의 모든 내용을 확인 할 수 있으며

서버에 설정된 특정 도메인의 트래픽을 확인 하려면
http://자신의 아이피 혹은 도메인/~아이디/throttle-me 를 확인 하면 됩니다.


이제 끝이랍니다.~

지금까지 따라오시느라 힘드셨죠?

수고 하셨습니다

만약 이글을 카피하시려면, 제 별명이나 한자 적어주세요
kucs.korea.ac.kr

그럼^^

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
참고사항
----------------------------------------------
DSO 방식과 Static 방식의 차이점은 무엇일가요?

DSO방식은 아파치를 먼저 컴파일하고 다른 모듈들을 추가로 설치할 때는 아파치를 재 컴파일하지
않고 한번 설정되어 컴파일된 아파치를 계속 사용하는 것이다.
즉, DSO방식은 아파치를 단 한번만 컴파일한다는 것이다. 이점은 관리, 설치면에서 커다란 장점이다.
Static 방식은 설치면에서 추가로 모듈을 설치하려고 하면 설정하려는 모듈만 설정하고 컴파일하는
과정이 필요할 뿐만 아니라 아파치 또한 그에 따라 컴파일을 하여야 한다.
이는 관리면에서 단점이 될 수 있다.

시스템 측면에서 이 두 가지의 차이점이 있다.

먼저 DSO는 아파치에 설치된 모듈이 필요할 때 시스템에 적재된다. 이는 클라이언트의 요청에
응답하는 요청시간이 다소 느릴 수 있지만, 하드웨어의 속도가 뒷받침된다면 해결이 될 수 있는 부분이다.
여하튼 이런 방식(DSO)은 시스템의 리소스(메모리, CPU)들을 적절하게 효율적으로 사용한다고 볼 수 있다.
이 방식은 예전에는 실험적인 성격을 가졌지만, 이젠 거의 안정 수준에 올라와 점점 DSO방식을 선호하고 있다.

또 다른 방식인 Static 방식은 이전 방식(DSO)와는 다소 차이가 있다.
이 방식은 아파치에 추가된 모듈이 아파치의 기동과 함께 모든 모듈을 포함하여 시스템에 적재한다.
만약 아파치의 기동과 함께 적재된 어떤 모듈이 클라이언트에 의해 거의 쓰지 않는다면 쓸데없이
시스템 리소스를 점유하고 있으므로 이는 비효율적이라 볼 수 있다.
또한 아파치와 각 모듈들은 설치시 복잡하다.
각 모듈과 설정된 아파치에 또 다시 모듈을 추가하려 할 때 아파치와 모듈을 다시 컴파일하여야 한다.
-----------------------------------------------------------------


muti

음... DSO에 단점도 있을 수 있다 생각합니다...
전 일부로 static방식을 사용하는 편이거든요...
예를 들어 특정 라이브러리 패키지를 삽입할때는 DSO가 관리도 편하고 셋팅도 간단합니다. 그러나 이미 설치되어 있는 라이브러리를 새로운 버전으로 대체한다거나 php 옵션을 다르게 설치할 경우 서비스에 영향을 줄수밖에 없습니다.
반면 static방식일땐 서비스를 내리지 않고 mv명령으로 아파치의 디렉토리를 바꿉니다.. 메모리에 데몬이 돌기 때문에 서비스에 지장이 없더군요.. 이상태에서 새로운 라이브러리와 php, 아파치를 인스톨하고.. 내리는 동시에 새로운 아파치를 올립니다.
테스트를 만약 할시에는 conf에서 포트번호를 다르게 하면 테스트도 가능합니다.
사용자가 좀 되고 안정성이 중요한 경우 DSO는 이런 부분에서 좀 그런경우가 있더라구요 ^^; 한자 적어봤습니다..

관련자료

댓글 0
등록된 댓글이 없습니다.
Today's proverb
위대하다는 사람도 결국은 비상한 결심을 가진 평범한 사람에 불과하다. (R.H 슐러)