ITEASY

닫기

추천 검색어
# 클라우드
# VPN
# 무료서비스
# 호스팅
# 이벤트

이전 단계

기술문서

APACHE 1.3.x + mod_ssl + mod_throttle 설치 방법

2007. 09. 05

Apache 1.3.x 에는 자체 SSL 이 없습니다.

그러기 때문에 추가로 SSL 패치를 다운받아 패치 후 설치해야 합니다.

하단의 내용은 Apache 1.3.x 에 패치하는 방법과 패치 후 Apache 에 SSL 을 활성화 와

웹 호스팅 또는 다수의 사이트의 트래픽을 조절하기 위해 mod_throttle 설치하는 방법을 안내하고 있습니다.

참고하시기 바랍니다.


* 이문서는 openssl 이 /usr/local/openssl 에 설치된 가정하에 작동합니다. 주의하시기 바랍니다.

* http://www.apache.org 에서 apache 를 다운로드 할 수 있습니다.

* http://www.modssl.org/source 에서 각 버전에 맞는 패치를 다운로드 할 수 있습니다.

* http://www.snert.com/Software/mod_throttle 에서 mod_throttle 를 다운로드 할 수 있습니다. (없어짐)

* mod_throttle3.1.2 는 타 Site 또는 자료실에서 다운로드 하시기 바랍니다.


1. 아파치 소스 다운로드

2. mod_ssl 패치 다운로드

3. 패치 적용

4. 모드 스로틀 설치

5. 아파치 설치

6. 모드 스로틀 설정

7. 인증서 설정 방법

8. 구동 방법

9. 모드 스로틀 트래픽 확인 및 수동 리셋 과 자동 리셋



1. 아파치 소스 다운로드

아파치 홈페이지를 방문 합니다. http://www.apache.org

왼쪽 메뉴에 http server 에서 다운로드가 가능합니다.

현재 최신버전을 다운로드 합니다.



2. mod_ssl 패치 다운로드

mod_ssl 홈페이지를 방문 합니다. http://www.modssl.org

왼쪽 source 에서 다운로드가 가능합니다.

다운도르 받은 아파치에 맞는 버전을 다운로드 합니다.

ex) apache_1.3.37.tar.gz 다운로드시 mod_ssl-2.8.28-1.3.37.tar.gz 다운로드 합니다.



3. 패치 적용

기본적으로 /usr/local/src 디렉토리에 다운로드 받은 소스를 옮긴 뒤에 압축을 해제합니다.

다음과 같이 패치 합니다.


./configure 

--with-apache=/usr/local/src/apache_1.3.37 

--with-ssl=/usr/local/openssl 

--prefix=/usr/local/apache-ssl


* --with-apache=/usr/local/src/apache_1.3.37 은 아파치 소스가 있는 위치이며

* --with-ssl=/usr/local/openssl 은 openssl 이 설치된 위치 입니다.

* --prefix=/usr/local/apache-ssl 은 최종적으로 아파치가 설치될 위치 입니다.

* make, make install 과정이 없습니다.


4. 모드 스로틀 설치

다운로드 받은 mod_throttle3.1.2 를 /usr/local/src/mod_throttle-3.1.2 에 압축을 해제 합니다.

압축 해제 후 해당 디렉토리 안에 mod_throttle.c 파일 이 존재하는지 확인 합니다.

확인 후 다음 작업을 진행 합니다.



5. 아파치 설치

아파치 소스가 있는 곳으로 이동 합니다.

이동 후 다음과 같이 모드 스로틀과 같이 설치 합니다.


./configure 

--prefix=/usr/local/apache-ssl 

--enable-module=ssl 

--disable-shared=ssl 

--add-module=/usr/local/src/mod_throttle-3.1.2/mod_throttle.c 

--disable-shared=throttle 

--enable-rule=SHARED_CORE  

--enable-module=so  

--enable-shared=max  


make

make install


* openssl 을 설치 후 /etc/ld.so.conf 에 /usr/local/openssl/lib 를 입력 후 ldconfig 를 적용하지 않았을 경 우

다음과 같이 설치 전에 변수를 입력 합니다.


SSL_BASE=/usr/local/openssl

export SSL_BASE

LDFLAGS=-L/usr/local/openssl/lib

export LDFLAGS

CPPFLAGS=-I/usr/local/openssl/include

export CPPFLAGS


설치 완료 후 변수 해제 합니다.


unset SSL_BASE

unset LDFLAGS

unset CPPFLAGS



6. 모드 스로틀 설정

vi 에디터를 이용하여 /usr/local/apache-ssl/conf/httpd.conf 에 하단 내용을 입력 합니다.


<ifmodule mod_throttle.c="">

    ThrottlePolicy None

    <location status="">

            SetHandler throttle-status

            Order deny,allow

            Deny from all

            Allow from all

    </location>

    <location throttle="">

            SetHandler throttle-me

            Order allow,deny

            Allow from all

    </location>

    <location ~*="" throttle="">

        SetHandler throttle-me

            Order allow,deny

            Allow from all

    </location>

</ifmodule>


각 가상 호스트 안에 다음과 같은 설정을 입력 합니다.


<virtualhost 000.000.000.000:80="">

DocumentRoot "/home/www"

...

ThrottlePolicy Volume 100M 1d

...

</virtualhost>


* 트래픽 전송 용량 측정 하루 100M 제한



7. 인증서 설정 방법

아파치 설치 후 키를 생성하여 인증서를 신청, 인증서를 받았다면 다음과 같이 인증서를 적용 합니다.

/usr/local/apache-ssl/conf 디렉토리로 이동 합니다.

httpd.conf 파일을 수정 합니다. (최하단 부분)


<ifdefine ssl="">

NameVirtualHost 000.000.000.000:443

<virtualhost 000.000.000.000:443="">

DocumentRoot "/home/www"

ServerName www.ksidc.net

ServerAdmin test@ksidc.net

ErrorLog /usr/local/apache-ssl/logs/error_log

TransferLog /usr/local/apache-ssl/logs/access_log

SSLEngine on

SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL

SSLCertificateFile /home/ssl_key/www_ksidc_net.crt

SSLCertificateKeyFile /home/ssl_key/ksidc.key

<files ~="" ".(cgi|shtml|phtml|php3?)$"="">

    SSLOptions +StdEnvVars

</files>

<directory "="" usr="" local="" apache-ssl="" cgi-bin"="">

    SSLOptions +StdEnvVars

</directory>

SetEnvIf User-Agent ".*MSIE.*" 

         nokeepalive ssl-unclean-shutdown 

         downgrade-1.0 force-response-1.0

CustomLog /usr/local/apache-ssl/logs/ssl_request_log 

          "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x "%r" %b"

</virtualhost>

</ifdefine>


* SSLCertificateFile 이부분에 인증서 위치를 입력

* SSLCertificateKeyFile 이부분에 서버키 위치 입력

* 다른부분은 필요하지 않는 이상 수정하지 않습니다.



8. 구동방법

기존에 아파치가 작동중 이였을 경 우 모두 정지한다음 작업 합니다.

/usr/local/apache-ssl/bin/apachectl startssl


암호 입력부분에 키생성시 입력한 비밀번호를 입력 합니다.

/etc/rc.local 에도 수정합니다.


* 단 재부팅시에 암호를 입력해야 하기 때문에 자동으로 apache 가 올라오지 않습니다. 이전 주의하시기 바랍니다.

* 추후 업데이트에 암호 자동 입력부분을 확인 하여 올리도록 하겠습니다.



9. 모드 스로틀 트래픽 확인 및 수동 리셋 과 자동 리셋

각 사이트 트래픽 확인 방법은

http://000.000.000.000/status 는 모든 사이트의 트래픽을 확인 할 수 있으며

http://000.000.000.000/throttle 는 등록 된 사이트 하나하나 확인 할 수 있습니다.


status 는 관리자 기능으로 내용 맨앞 숫자를 클릭하게 되면 해당 가상호스트의 트래픽이 초기화 됩니다.

최상단에 Reset All 을 이용하여 모두 초기화도 가능합니다.


throttle 는 일반 기능이며 표현만 해줄 뿐 기능은 없습니다.


아무나 트래픽을 초기화 할수 없게 

<location status="">

        SetHandler throttle-status

        Order deny,allow

        Deny from all

        Allow from 000.000.000.000

</location>

위와 같이 한 Ip만 status 를 확인 할 수있게 가능합니다.


<location status="">

        SetHandler throttle-status

        Order deny,allow

        Deny from all

        Allow from 000.000.000.000

        Allow from 000.000.000.001

        Allow from 000.000.000.002

</location>

위와 같이 물론 다수도 가능하며


<location status="">

        SetHandler throttle-status

        Order deny,allow

        Deny from all

        Allow from 000.000.000.

</location>

위와 같이 일정 구간을 선택할 수 도 있습니다.


하루 한번 자동으로 트래픽을 리셋을 하는 방법은 cron 을 이용하여 다음 스크립트를 매일 자정에 실행 될 수 있도록 합니다.


#!/bin/sh

wget  http://000.000.000.000/status/?command=reset,* &gt; /dev/null 2&gt;&amp;1

이전 글 APACHE 2.2.x + SSL 설치 방법

2007. 09. 05

다음 글 파일 및 디렉토리 소유정보 변경하기

2007. 09. 05

목록

무엇이든 물어보세요

아이티이지 전문가가 궁금하신 점을 쉽고 빠르게 해결해 드리겠습니다.

고객센터 1600-8324
내선번호
  • 내선 1 서버 / IDC

  • 내선 2 클라우드

  • 내선 3 관리대행 / ITO

  • 내선 4 도메인

  • 내선 5 보안 서비스 문의

  • 내선 6 문자 / 카카오비즈메시지

  • 내선 7 Microsoft365

  • 내선 8 마케팅/서비스 제휴

  • 내선 9 홈페이지 제작

  • 내선 0 기타서비스

  • 내선 11 긴급 장애

휴일 긴급 연락처010-3124-8320

평일 9:00~18:00 (IDC 긴급 장애처리 24시간 운영)

FAX 02-6264-8321

문의하기