미꾸라지 HTTP (웹) 가속 적용법

Note

문서에 오류가 있거나 건의 사항이 있으시면 메세지를 미꾸라지 포럼 (http://mudfish.net/forums) 에 남겨주세요.

이 문서는 미꾸라지을 통하여 HTTP (웹) 가속(이하 웹가속)을 어떻게 적용 혹은 활용하는지 기술한 문서입니다.

소개

웹가속 이라는 거창한 이름을 붙였습니다만 사실 이 기술은 보통 CDN (Content Delivery Network) 업체들 사이에서는 굉장히 평이한 것이 불과하다고 볼 수 있는데요, 이 가속이라는 것은 보통 Cache Server (일반적으로 reverse proxy) 를 사용자의 컴퓨터와 최대한 가까운데 설치해 둠으로써 HTTP protocol 상의 컨텐츠를 cache 해 놓고 이미 가지고 있다면 뒤에 있는 Backend 서버에 물어보지 않고 Cache Server 가 스스로 해당 컨텐츠를 사용자에게 제공하는 것을 말합니다.

하지만 다른 CDN 업체에서 하는 caching 과 다른 점은 해당 CDN 업체들은 보통 회사를 상대로 영업을 하고 그 해당 회사의 홈페이지나 중요 자료를 캐싱하는 것과 대조적으로 미꾸라지의 경우 사용자가 방문하는 홈페이지를 대상으로 캐싱을 하는 것이 다릅니다.

제공하는 서비스 방식은 좀 더 Transparent proxy 에 가깝다고 생각하시면 됩니다.

특징 및 효과

자체 개발한 Cache-Terminator (일명 “캐시 종결자”: varnish 코드를 기반으로 하여 수정된 multi-threads non-blocking Cache Server) 를 이용하여 서비스를 하고 있으며 이용시 다음과 같은 혜택을 볼 수 있습니다.

  • WPAD (Web Proxy Auto Discovery) 프로토콜을 이용하여 세팅을 하기 때문에 사용자가 좀 더 유연하게 Proxy 사용 여부를 결정할 수 있습니다. 더 이상 웹 페이지가 proxy 설정으로 인해 더 느려질 일은 없으며, 사용자가 원하는 홈페이지에 대해서만 가속을 적용받으실 수 있습니다.
  • 미꾸라지 WAN optimization 기술을 적용하여 해외에서 접속시 느린 웹 페이지 로딩 시간을 개선할 수 있습니다. 예를 들면, 동영상 시청, 파일 다운로드 등등 웹 상에서 일어나는 모든 행위들을 가속할 수 있습니다.
  • 나라별 접속 제한 우회를 위한 HTTP proxy 로 사용될 수 있습니다. 모든 국내 및 해외에 설치된 미꾸라지 중계 서버를 통해 이용할 수 있습니다.
  • 자신의 현재 public IP 을 임시적으로 숨기고 싶으실 때 이용될 수 있습니다. (오직 미꾸라지 중계 서버의 로그에만 abuse 행위를 막기 위해 IP가 기록됩니다.)

단점

  • HTTP 프로토콜 1.1 specification 에 의하면 Backend 서버 (보통 실제 웹 서버)가 Cache-Control 과 같은 헤더를 통해서 해당 응답 결과를 얼마나 cache 해도 좋은지를 결정하게 됩니다. 하지만 간혹 Backend 서버가 컨텐츠 업데이트를 통해서 내용을 갱신할 경우, 이전에 받았던 응답의 Cache-Control 헤더를 준수하고 있는 미꾸라지 중계 서버는 해당 업데이트 여부를 알지 못해 오래전 데이타를 전송함으로써 결과적으로 페이지 화면이 깨져 나올 수 있습니다.

    보통 이 문제를 해결하기 위해서 Purging 기능을 이용하게 됩니다만, 아직은 사용자가 직접 제어할 수 있는 인터페이스를 제공하고 있지 않습니다.

미꾸라지 환경

운영중인 웹가속 미꾸라지 서버

가장 정확한 표는 미꾸라지 UI에서 ‘설정 -> WPAD’ 메뉴를 통해서 알 수 있습니다. 아래의 표는 최신 리스트를 반영하지 않을 수 있습니다.

HTTP proxy IP Port Cache 용량 네트워크 이름
10.255.96.1 8080 20 GBytes 1 G shared Asia (S.Korea - KT IDC)

브라우저별 세팅 방법 (WPAD 기능 이용)

Warning

웹가속 기능의 경우, 미꾸라지 서비스의 일부로써 반드시 미꾸라지 프로그램을 실행한 상태에서 적용하셔야 합니다. 또한 HTTP proxy IP 의 경우, internal IP 인 10.XXX.YYY.ZZZ 형태를 가지고 있기 때문에, 미꾸라지 실행 없이는 접근할 수 없습니다.

이제 사용하시는 브라우저 세팅하는 방법에 대해서 설명 드리도록 하겠습니다.

현재 인터넷 상에서 가장 많이 사용되는 3 가지 인터넷 브라우저를 대상으로 어떻게 WPAD 프로토콜을 이용하여 프록시 서버를 설정하는지 설명을 하겠습니다.

Note

아래 예제들은 미꾸라지 사용자 ID 가 weongyo 라고 가정을 했을 때 어떻게 세팅하는지 보여주는 예입니다. 사용자 ID weongyo 에 대해 사용된 WPAD URL 은 다음과 같았습니다.

Chrome (크롬)

구글 크롬(Chrome)은 기본적으로 인터넷 익스플로러(IE)에서 설정한 프록시(Proxy) 설정을 사용합니다.

프록시 설정을 변경하려면 다음 단계를 따르세요.

  1. 브라우저 툴바의 공구모양 아이콘 도구 메뉴을 클릭합니다.
  2. 설정 을 선택합니다.
../../_images/proxy_chrome_1.png
  1. 고급 설정 보기 를 클릭합니다.
../../_images/proxy_chrome_2.png
  1. ‘네트워크’ 섹션에서 프록시 설정 변경 을 클릭합니다. 그러면 인터넷 속성 대화상자가 열립니다.
../../_images/proxy_chrome_3.png
  1. 그럼 이제 아래의 Internet Explorer 설정 2 단계 부터 따라하시면 됩니다.

Firefox (불여우)

Firefox 는 자체적으로 프록시 설정 기능을 내장하고 있습니다.

  1. 설정 메뉴에 들어갑니다.
../../_images/proxy_firefox_1.png
  1. 고급 탭으로 이동 한 후, 네트워크 하위 탭을 선택합니다.
  2. 연결 메뉴 옆에 있는 설정 단추를 클릭합니다. 그러면 ‘연결 설정’에 관한 새로운 창이 뜰 것입니다.
../../_images/proxy_firefox_2.png
  1. 자동 프록시 설정 URL 을 클릭합니다.
../../_images/proxy_firefox_3.png
  1. 자동 프록시 설정 URL 상자에 자신의 ID 에 맞는 WPAD 주소를 입력합니다. 위 그림 파일에서의 예는 사용자 ID 가 weongyo 이고, 미꾸라지 Launcher 가 8282 포트에 작동되었다고 가정할 때의 예제입니다. 자신에게 맞는 정확한 URL 은 미꾸라지 UI의 ‘설정 -> WPAD’ 메뉴에서 확인하실 수 있습니다.
  2. 모든 정보 변경을 마쳤으면 Firefox 로 돌아갈 때까지 확인을 클릭합니다.

Internet Explorer

이 정보는 Windows Internet Explorer 7/8/9 에 적용됩니다.

  1. 도구 단추를 클릭한 다음 인터넷 옵션 을 클릭합니다. Internet Explorer 9 사용자의 경우 아래의 그림과 같이 인터넷 옵션을 선택하시면 됩니다.
../../_images/proxy_ie_1.png
  1. 연결 탭을 클릭한 다음 LAN 설정 을 클릭합니다.
../../_images/proxy_ie_2.png
  1. 자동 구성 스크립트 사용 체크박스를 선택하고 아래 ‘주소(R)’ 박스에 자신의 ID 에 맞는 WPAD 주소를 입력합니다. 아래 그림 파일에서의 예는 사용자 ID 가 weongyo 이고, 미꾸라지 Launcher 가 8282 포트에 작동되었다고 가정할 때의 예제입니다. 자신에게 맞는 정확한 URL 은 미꾸라지 UI의 ‘설정 -> WPAD’ 메뉴에서 확인하실 수 있습니다.
../../_images/proxy_ie_3.png
  1. 모든 정보 변경을 마쳤으면 Internet Explorer로 돌아갈 때까지 확인을 클릭합니다.

브라우저별 세팅 방법 (Direct HTTP proxy 세팅 방법)

Warning

이 방법은 WPAD 기능 이용이 어려운 사용자 분들을 위해 작성된 섹션입니다. 이 방법 이용시 브라우저의 모든 traffic 이 미꾸라지 중계 서버를 통해 전달되기 때문에 미꾸라지 프로그램 종료 후 인터넷 브라우저가 proxy 설정으로 인해 제대로 동작하지 않을 수 있습니다.

이 문제를 해결하기 위해서는 반드시 Proxy 설정을 disable 하셔야 합니다.

아래에서는 미꾸라지 중계 서버를 WPAD 기능을 사용하지 않고 직접 브라우저의 HTTP proxy 세팅 기능을 이용하는 방법에 대해 설명을 하고 있습니다.

예제로 미꾸라지 한국 KT 중계 서버 (해당 서버의 내부 IP 는 10.255.96.1 이며 HTTP proxy 는 port 8080 이 이용됩니다.) 를 Proxy 서버로 이용하는 방법에 대해서 설명하겠습니다.

Chrome (크롬)

구글 크롬(Chrome)은 기본적으로 인터넷 익스플로러(IE)에서 설정한 프록시(Proxy) 설정을 사용합니다.

프록시 설정을 변경하려면 다음 단계를 따르세요.

  1. 브라우저 툴바의 공구모양 아이콘 도구 메뉴을 클릭합니다.
  2. 설정 을 선택합니다.
../../_images/proxy_chrome_1.png
  1. 고급 설정 보기 를 클릭합니다.
../../_images/proxy_chrome_2.png
  1. ‘네트워크’ 섹션에서 프록시 설정 변경 을 클릭합니다. 그러면 인터넷 속성 대화상자가 열립니다.
../../_images/proxy_chrome_3.png
  1. 그럼 이제 아래의 Internet Explorer 설정 2 단계 부터 따라하시면 됩니다.

Firefox (불여우)

Firefox 는 자체적으로 프록시 설정 기능을 내장하고 있습니다.

  1. 설정 메뉴에 들어갑니다.
../../_images/proxy_firefox_1.png
  1. 고급 탭으로 이동 한 후, 네트워크 하위 탭을 선택합니다.
  2. 연결 메뉴 옆에 있는 설정 단추를 클릭합니다. 그러면 ‘연결 설정’에 관한 새로운 창이 뜰 것입니다.
../../_images/proxy_firefox_2.png
  1. 수동 proxy 설정 을 클릭합니다.
../../_images/http_firefox_1.png
  1. 수동 프록시 설정 상자의 IP 와 Port 박스에 사용하실 미꾸라지 중계 서버 내부 주소 (예를 들어, IP 는 10.255.96.1, port 는 8080) 를 입력합니다.
  2. 모든 정보 변경을 마쳤으면 Firefox 로 돌아갈 때까지 확인을 클릭합니다.

Internet Explorer

이 정보는 Windows Internet Explorer 7/8/9 에 적용됩니다.

  1. 도구 단추를 클릭한 다음 인터넷 옵션 을 클릭합니다. Internet Explorer 9 사용자의 경우 아래의 그림과 같이 인터넷 옵션을 선택하시면 됩니다.
../../_images/proxy_ie_1.png
  1. 연결 탭을 클릭한 다음 LAN 설정 을 클릭합니다.
../../_images/proxy_ie_2.png
  1. 프록시 서버 항목에서 “사용자 LAN에 프록시 서버 사용” 체크박스를 선택하고 “로컬 주소에 프록시 서버 사용 안 함” 체크 박스 또한 선택합니다.
../../_images/http_ie_1.png
  1. “고급” 버튼을 클릭하면 볼 수 있는 프록시 설정 창에서 HTTP 항목에 올바른 미꾸라지 중계 서버의 IP 와 Port 정보를 입력합니다.
../../_images/http_ie_2.png
  1. 모든 정보 변경을 마쳤으면 Internet Explorer로 돌아갈 때까지 확인을 클릭합니다.

브라우저별 세팅 방법 (Direct SOCKS proxy 세팅 방법)

Warning

이 방법은 WPAD 기능 이용이 어려운 사용자 분들을 위해 작성된 섹션입니다. 이 방법 이용시 브라우저의 모든 traffic 이 미꾸라지 중계 서버를 통해 전달되기 때문에 미꾸라지 프로그램 종료 후 인터넷 브라우저가 proxy 설정으로 인해 제대로 동작하지 않을 수 있습니다.

이 문제를 해결하기 위해서는 반드시 Proxy 설정을 disable 하셔야 합니다.

아래에서는 미꾸라지 중계 서버를 WPAD 기능을 사용하지 않고 직접 브라우저의 SOCKS proxy 세팅 기능을 이용하는 방법에 대해 설명을 하고 있습니다.

예제로 미꾸라지 한국 KT 중계 서버 (해당 서버의 내부 IP 는 10.255.96.1 이며 SOCKS proxy 는 port 8081 이 이용됩니다.) 를 Proxy 서버로 이용하는 방법에 대해서 설명하겠습니다.

Chrome (크롬)

구글 크롬(Chrome)은 기본적으로 인터넷 익스플로러(IE)에서 설정한 프록시(Proxy) 설정을 사용합니다.

프록시 설정을 변경하려면 다음 단계를 따르세요.

  1. 브라우저 툴바의 공구모양 아이콘 도구 메뉴을 클릭합니다.
  2. 설정 을 선택합니다.
../../_images/proxy_chrome_1.png
  1. 고급 설정 보기 를 클릭합니다.
../../_images/proxy_chrome_2.png
  1. ‘네트워크’ 섹션에서 프록시 설정 변경 을 클릭합니다. 그러면 인터넷 속성 대화상자가 열립니다.
../../_images/proxy_chrome_3.png
  1. 그럼 이제 아래의 Internet Explorer 설정 2 단계 부터 따라하시면 됩니다.

Firefox (불여우)

Firefox 는 자체적으로 프록시 설정 기능을 내장하고 있습니다.

  1. 설정 메뉴에 들어갑니다.
../../_images/proxy_firefox_1.png
  1. 고급 탭으로 이동 한 후, 네트워크 하위 탭을 선택합니다.
  2. 연결 메뉴 옆에 있는 설정 단추를 클릭합니다. 그러면 ‘연결 설정’에 관한 새로운 창이 뜰 것입니다.
../../_images/proxy_firefox_2.png
  1. 수동 proxy 설정 을 클릭합니다.
../../_images/http_firefox_2.png
  1. 수동 프록시 설정 상자의 IP 와 Port 박스에 사용하실 미꾸라지 중계 서버 내부 주소 (예를 들어, IP 는 10.255.96.1, port 는 8081) 를 입력합니다. SOCKS 호스트 부분이 이용됩니다.
  2. 모든 정보 변경을 마쳤으면 Firefox 로 돌아갈 때까지 확인을 클릭합니다.

Internet Explorer

이 정보는 Windows Internet Explorer 7/8/9 에 적용됩니다.

  1. 도구 단추를 클릭한 다음 인터넷 옵션 을 클릭합니다. Internet Explorer 9 사용자의 경우 아래의 그림과 같이 인터넷 옵션을 선택하시면 됩니다.
../../_images/proxy_ie_1.png
  1. 연결 탭을 클릭한 다음 LAN 설정 을 클릭합니다.
../../_images/proxy_ie_2.png
  1. 프록시 서버 항목에서 “사용자 LAN에 프록시 서버 사용” 체크박스를 선택하고 “로컬 주소에 프록시 서버 사용 안 함” 체크 박스 또한 선택합니다.
../../_images/http_ie_1.png
  1. “고급” 버튼을 클릭하면 볼 수 있는 프록시 설정 창에서 Socks 항목에 올바른 미꾸라지 중계 서버의 IP 와 Port 정보를 입력합니다.
../../_images/http_ie_3.png
  1. 모든 정보 변경을 마쳤으면 Internet Explorer로 돌아갈 때까지 확인을 클릭합니다.