RSS구독하기:SUBSCRIBE TO RSS FEED
즐겨찾기추가:ADD FAVORITE
글쓰기:POST
관리자:ADMINISTRATOR
Apache를 이용하여 proxy(reverse) 및 cache 기능을 구현하는 방법에 대해서 논하고자 한다.
단, 필자가 실제 서비스에 필요한 사항만 기술하니 기타 자세한 사항은 apache 공식 사이트의 내용을 참고하기 바란다

(1) 환경
    - Web Server : Apache 2.2.6
    - modules : mod_proxy, mod_cache (mod_disk_cache, mod_mem_cache)
    - 3개의 도메인 / 내부도메인 (외부도메인 ==> 내부도메인 forwarding)
    - Reverse Proxy
    - Disk Caching (특정 디렉토리만 Caching) - MaxDiskSize 1G

(2) 설치 (설치시 필요한 Library는 정상설치되었다고 가정한다.)
    - Configure option
./configure --prefix=/usr/local/apache --enable-module=so --enable-modules=all --enable-mods-shared=all --enable-proxy --enable-cache --enable-mem-cache --enable-file-cache --enable-disk-cache --with-zlib=/usr/local/lib/ --enable-deflate

   참고) Apache 컴파일 시 아래와 같은 오류가 발생하는 경우
          mod_deflate has been requested but can not be built due to prerequisite failures
           ; 이 오류는 deflate라는 압축관련 모듈을 load 하는 과정에서 zlib library가 상기 configure에서 지정한
             경로에 존재하지 않거나 혹은 zlib의 devel 패키지가 설치되지 않았을 경우에 발생할 수 있다
             따라서, [zlib_devel 다운로드]에서 devel 패키지를 다운받아 설치 후 아파치를 컴파일 하면 정상적으로
             설치된다.

(3) 셋팅
    - Cache를 위한 특정 디렉토리 생성 (예:CacheRoot /usr/local/apache/cache)
    - 아피치 디렉토리/conf/httpd.conf 수정
       # Virtual hosts
       Include conf/extra/httpd-vhosts.conf  <== 주석 제거

    - 가상호스트 수정 (아피치 디렉토리/conf/extra/httpd-vhost.conf)
<VirtualHost 아이피>
    ServerName 외부도메인1
    ProxyPass / http://내부도메인1/
    ProxyPassReverse / http://내부도메인1/
    CacheRoot /usr/local/apache/cache
    CacheEnable disk /public_html
    CacheMaxFileSize 1000000000
    CacheDefaultExpire 60
    CacheIgnoreNoLastMod On
    CacheMaxExpire 60
</VirtualHost>

<VirtualHost 아이피>
    ServerName 외부도메인2
    ProxyPass / http://내부도메인2/
    ProxyPassReverse / http://내부도메인2/
</VirtualHost>

<VirtualHost 아이피>
    ServerName 외부도메인3
    ProxyPass / http://내부도메인3/
    ProxyPassReverse / http://내부도메인3/
</VirtualHost>

(4) 확인
   - 아파치를 재기동 시킨다
   - 외부 도메인의 서버 / 내부 도메인의 서버의 access log를 확인하여 proxy 및 cache가 제대로 되는지 확인한다.

* 참고) 브라우져마다 자체 Caching정책으로 proxy 제대로 되지 않는 것처럼 보일 수 있기 때문에
브라우져의 역할을 대체하는 간단한 코드를 작성하여 테스트 하는 것이 확실하게 proxy 및 cache가 되는지 알 수 있다 (필자는 python을 이용하여 테스트 하였다.)

이상으로 proxy 및 cache에 대한 구성을 마치며, 궁금한 사항이나 의문사항이 있으면 댓글이나
hakburi@naver.com 으로 메일 보내면 답변을 해드릴 예정이다
      

2013/01/22 16:47 2013/01/22 16:47
http://zosel.net/trackback/40
ZOSEL:Too much is as bad as too little...!! 자공(子貢)이 공자에게 "사(師:子張의 이름)와 상(商:子夏의 이름)은 어느 쪽이 어집니까?" 하고 묻자, 공자는 "사는 지나치고 상은 미치지 못한다"고 대답하였다. "그럼 사가 낫단 말씀입니까?" 하고 반문하자, 공자는 "지나친 것은 미치지 못한 것과 같다(過猶不及)"고 말하였다.
Too much is as bad as too little...!! 자공(子貢)이 공자에게 "사(師:子張의 이름)와 상(商:子夏의 이름)은 어느 쪽이 어집니까?" 하고 묻자, 공자는 "사는 지나치고 상은 미치지 못한다"고 대답하였다. "그럼 사가 낫단 말씀입니까?" 하고 반문하자, 공자는 "지나친 것은 미치지 못한 것과 같다(過猶不及)"고 말하였다.
전체 (209)
리눅스시스템 (92)
윈도우시스템 (16)
프로그램 (7)
네트워크시스템 (7)
최근관심 (1)
«   2024/05   »
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  
  1. yeezyboost-350.co.uk  2021
    yeezyboost-350.co.uk
  2. 강남역 풀싸롱  2021
    강남역 풀싸롱
  3.   2021
  1. 2018/02 (1)
  2. 2017/03 (2)
  3. 2016/12 (2)