ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • ATS Config File 및 Reverse Proxy 기본 구성
    System & Dev Story/Apache Traffic Server 2013. 9. 6. 15:21

    안녕하세요. 지유파파입니다.

     

    ATS 설치 및 기동까지만 글을 올리고 한동안(?) 뜸 했군용;;;

     

    제가 기초 설정에 대해 언급을 해놓고 글을 안올리는 무책함 일을 저지르고 말았습니다...;;;

     

     

    그래서 오늘은 아주 아주 간단히 기본 설정에 대해 알아보고자 합니다.

     

    기본 설정은 모두 Reverse Proxy를 기준으로 합니다.

     

    Forward Proxy는 그냥 설치하시고 start만 하셔도 바로 사용 가능합니다.

     

     

    참고로, 제가 언급하는 모든 내용은 ATS Homepage에서 찾아보실 수 있습니다. ^^

     

     

    홈페이지 내용을 살펴보시면, 제공되는 configuration file은 아래와 같습니다.

    (각 file명을 클릭하시면 해당 내용 페이지로 연결됩니다)

     

  • cache.config
  • congestion.config
  • hosting.config
  • icp.config
  • ip_allow.config
  • log_hosts.config
  • logs_xml.config
  • parent.config
  • plugin.config
  • volume.config
  • records.config
  • remap.config
  • splitdns.config
  • ssl_multicert.config
  • storage.config
  • update.config
  •  

     

    그 중에서 기본 설정에 사용할 파일은 아래와 같이 3가지입니다.

     

    record.config / remap.config / storage.config

     

     

    ① record.config

    ATS에 대한 거의 모든 설정이 이 파일 안에 있다고 해도 과언이 아닙니다.

    ATS 관련 설정은 대부분 이 파일을 수정하여 진행을 합니다.

    기본적으로 Reverse Proxy로 운영을 하기 위해서 고쳐야 하는 파라미터들은 아래와 같습니다.

     

    ...

    CONFIG proxy.config.http.server_ports STRING 80
    CONFIG proxy.config.reverse_proxy.enabled INT 1
    CONFIG proxy.config.url_remap.remap_required INT 1
    ... 

     

    파라미터 문구만 보셔도 대략 이해가 가실만큼 네이밍이 잘되어 있습니다.

     

      

    proxy.config.http.server_ports - 말그대로 ATS 포트를 지정하는 부분입니다. 예제는 80으로 하였으나 원하시는 포트로 변경하셔도 무방합니다.

     

    proxy.config.reverse_proxy.enabled - Reverse Proxy로 구성할 것이기 때문에 당연히 1 값을 설정합니다.

     

    proxy.config.url_remap.remap_required - Remap.config 파일이 꼭 필요하냐는 부분인데, 실제 0값으로 설정해도 되긴합니다. ^^;; 다만 0 값으로 설정한다는 것은 Forward Proxy도 Enable 하겠다는 의미와 동일하기에 예제에서는 1값으로 설정하도록 합니다.

     

     

    vi편집기를 통해서 위의 값들을 수정하고 저장합니다.

    수정된 값을 적용할 때는 ATS Restart를 하거나,

    명령어가 있는 /bin 디렉토리로 이동하여 ./traffic_line -x 명령어로 적용 가능합니다.

     

     

    ② remap.config

    remap.config는 Reverse Proxy 구성의 핵심입니다.

     

    vi를 통해 열어보면 친절하게 영어로 설명을 해두었습니다.

    요점은 "Rewrite a URL before sending it to the Origin Server" 군요!!

    Client에서 요청한 URL을 받아서 Origin Server URL로 Rewrite 시켜준답니다.

     

    이걸 맵핑(mapping)이라고 표현하고, 6가지 형태를 제공한다는군요.

    map
    map_with_referer
    map_with_recv_port
    reverse_map
    redirect
    redirect_temporary

     

    기본 테스트는 map만 사용하여 진행하도록 합니다.

     

    remap.config 제일 하단에 아래와 같이 라인을 추가합니다.

     

     

    참고로 IP를 넣으셔도 되고, 도메인을 넣으셔도 됩니다.

     

     

    이렇게 말이죠! (단, 도메인은 모두 각 서버를 바라보게 설정되어있다는 가정하입니다. ^^;;)

     

    저의 경우에는 192.168.0.100이 ATS이고, 192.168.0.200이 Origin Server(Apache)입니다.

    따라 하실 분들은 각각 본인들의 IP 혹은 도메인에 맞게 변경하시면 됩니다.

     

    이렇게 단 1줄을 추가하는 것만으로 remap.config 설정은 끝입니다.

     

     

    ③ storage.config

    사실 이렇게 적다보니... 기본 테스트를 할 때는 이 파일은 수정을 안해도 무방하네요... -_-;;;

    일단은 뭐 거론을 했으니 적어봅니다.

    storage.config 파일은 말 그대로 storage 즉, cache.db 파일의 크기 및 저장 위치를 지정하는 곳입니다.

     

    vi에디터를 통해 파일을 열어보면 기본적으로,

     

    var/trafficserver 256M

     

    실제 해당 경로 파일을 보면 아래와 같이 동일한 사이즈로 생성되어 있음을 알 수 있습니다.

     

    # ls -lh /usr/local/trafficserver/var/trafficserver/cache.db
    -rw-r--r-- 1 nobody nobody 256M  9월  6 15:09 /usr/local/trafficserver/var/trafficserver/cache.db

     

     수정을 원하시면 아래 양식에 맞게 변경하고 저장하시면 됩니다.

     

     <pathname> <size>

     

    storage.config 파일을 변경하신 경우에는 ATS Restart를 하여야 정상 적용 가능합니다.

     

    여기서 유의해야 할 점이 하나 있습니다.

     

    storage.config를 통해 입력된 <pathname> 경로는 사용자가 직접 생성하여야 하며, "chown nobody:nobody <pathname>" 혹은 "chmod 777 <pathname>" 명령어를 통해 권한을 부여하셔야 합니다.

    이 작업을 진행하지 않으시면 cache.db 파일에 Access 할 수 없다면서 Cache Server가 기동되지 않습니다.

     

     

     

    자! 이렇게 3가지 파일을 수정한 다음 ATS가 정상적으로 기동되어 있는 지를 확인합니다.

     

    설정 적용을 제대로 했는지 가물가물하시다면, ATS Restart를 한번 해줍니다. ^^

    (테스트니깐 재기동 하는 것을 두려워 마세요!!!)

     

    이제 웹브라우져를 통해서 http://ATS_IP_Address 를 입력 해보시면, ATS IP를 입력하였음에도 Origin Server 웹페이지가 열리는 것을 확인 할 수 있습니다.

     

    이 경우 정상적으로 설정이 되고 Cache도 되고 있다고 보시면 됩니다.

     

     

     

    어떻게 Cache가 되었다고 보냐고요??

     

    그건 다음 시간에 Log 확인을 통해서 알려드리겠습니다!!!