본문으로 건너뛰기

HTTP Proxy

팁

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

이 문서는 미꾸라지를 통하여 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) 를 이용하여 서비스를 하고 있으며 이용 시 다음과 같은 혜택을 볼 수 있습니다.

  • 미꾸라지 WAN optimization 기술을 적용하여 해외에서 접속 시 느린 웹 페이지 로딩 시간을 개선할 수 있습니다. 예를 들면, 동영상 시청, 파일 다운로드 등등 웹 상에서 일어나는 모든 행위들을 가속할 수 있습니다.

  • 나라별 접속 제한 우회를 위한 HTTP proxy 로 사용될 수 있습니다. 모든 국내 및 해외에 설치된 미꾸라지 중계 서버를 통해 이용할 수 있습니다.

  • 자신의 현재 public IP 을 임시적으로 숨기고 싶으실 때 이용될 수 있습니다. (오직 미꾸라지 중계 서버의 로그에만 abuse 행위를 막기 위해 IP가 기록됩니다.)

단점​

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

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

공인 IP로 접속하기​

미꾸라지 중계 서버는 공인 IPv4 주소를 통한 HTTP(S) 프록시 접속을 지원합니다. 이 방식은 미꾸라지 ID와 비밀번호를 이용한 인증이 필요합니다.

서비스 종류​

서비스TCP 포트설명
HTTP 프록시18080일반 HTTP 프로토콜을 사용합니다. 요청에 따라 암호화되지 않은 트래픽이 전달될 수 있습니다.
HTTPS 프록시18082중계 서버와의 연결을 SSL로 암호화합니다. 웹 트래픽 검사나 네트워크 방화벽을 우회할 때 도움이 될 수 있습니다.
HTTP (SSL Bump) 프록시18083중계 서버가 HTTPS 트래픽을 복호화한 뒤 미꾸라지 root CA 인증서로 다시 암호화하여 전달합니다.

SSL Bump 방식을 이용하려면 먼저 미꾸라지 root CA 인증서를 브라우저에 설치해야 합니다.

중계 서버 주소 확인 및 설정​

  1. 중계 서버 상태에서 사용할 서버의 공인 IPv4 주소 또는 호스트 이름을 확인합니다. 중계 서버 API에서도 JSON 형식으로 확인할 수 있습니다. 공인 IPv4 주소는 ip, 호스트 이름은 hostname 필드입니다. 전체 필드 설명은 중계 서버 API 응답 필드를 참고하세요.
  2. 브라우저 또는 운영체제의 프록시 설정에서 해당 공인 주소와 서비스에 맞는 포트를 입력합니다. 일반 HTTP 프록시를 이용한다면 TCP 18080을 지정합니다.
  3. 인증을 요청하면 미꾸라지 ID와 비밀번호를 입력합니다.

아래의 기존 내부망 설정 예제는 내부 IP와 8080 포트를 사용합니다. 공인 IP로 접속할 때는 위에서 확인한 공인 주소와 포트를 사용하세요.

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

이 방법 이용 시 브라우저의 모든 traffic 이 미꾸라지 중계 서버를 통해 전달되기 때문에 미꾸라지 프로그램 종료 후 인터넷 브라우저가 proxy 설정으로 인해 제대로 동작하지 않을 수 있습니다.

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

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

Chrome (크롬)​

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

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

  1. 브라우저 툴바의 공구모양 아이콘 도구 메뉴를 클릭합니다.

  2. 설정 을 선택합니다.

  3. 고급 을 클릭합니다.

  4. '네트워크' 섹션에서 프록시 설정 변경 을 클릭합니다. 그러면 인터넷 속성 대화상자가 열립니다.

  5. 그럼 이제 아래의 Internet Explorer 설정 2 단계 부터 따라하시면 됩니다.

Firefox (불여우)​

  1. 주소창에 about:preferences를 입력하여 설정을 여세요. 설정 검색창에서 proxy를 검색한 뒤 프록시 구성 버튼을 눌러 연결 설정을 여세요.

  2. 수동 프록시 설정 을 클릭합니다.

  3. 수동 프록시 설정 상자의 IP 와 Port 박스에 사용하실 미꾸라지 중계 서버 내부 주소 (예를 들어, IP 는 10.255.96.1, port 는 8080) 를 입력합니다.

  4. 모든 정보 변경을 마쳤으면 Firefox 로 돌아갈 때까지 확인을 클릭합니다.

Internet Explorer​

이 정보는 Windows Internet Explorer 7이상에서 적용됩니다.

  1. 도구 단추를 클릭한 다음 인터넷 옵션 을 클릭합니다. Internet Explorer 11 사용자의 경우 아래의 그림과 같이 인터넷 옵션을 선택하시면 됩니다.

  2. 연결 탭을 클릭한 다음 LAN 설정 을 클릭합니다.

  3. 프록시 서버 항목에서 "사용자 LAN에 프록시 서버 사용" 체크박스를 선택하고 "로컬 주소에 프록시 서버 사용 안 함" 체크 박스 또한 선택합니다.

  4. "고급" 버튼을 클릭하면 볼 수 있는 프록시 설정 창에서 HTTP 항목에 올바른 미꾸라지 중계 서버의 IP 와 Port 정보를 입력합니다.

  5. 모든 정보 변경을 마쳤으면 Internet Explorer로 돌아갈 때까지 확인을 클릭합니다.

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

이 방법은 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. 설정 을 선택합니다.

  3. 설정 을 클릭합니다.

  4. '네트워크' 섹션에서 프록시 설정 변경 을 클릭합니다. 그러면 인터넷 속성 대화상자가 열립니다.

  5. 그럼 이제 아래의 Internet Explorer 설정 2 단계 부터 따라하시면 됩니다.

Firefox (불여우)​

  1. 주소창에 about:preferences를 입력하여 설정을 여세요. 설정 검색창에서 proxy를 검색한 뒤 프록시 구성 버튼을 눌러 연결 설정을 여세요.

  2. 수동 proxy 설정 을 클릭합니다.

  3. 수동 프록시 설정 상자의 IP 와 Port 박스에 사용하실 미꾸라지 중계 서버 내부 주소 (예를 들어, IP 는 10.255.96.1, port 는 8081) 를 입력합니다. SOCKS 호스트 부분이 이용됩니다.

  4. 모든 정보 변경을 마쳤으면 Firefox 로 돌아갈 때까지 확인을 클릭합니다.

Internet Explorer​

이 정보는 Windows Internet Explorer 7이상에서 적용됩니다.

  1. 도구 단추를 클릭한 다음 인터넷 옵션 을 클릭합니다. Internet Explorer 11 사용자의 경우 아래의 그림과 같이 인터넷 옵션을 선택하시면 됩니다.

  2. 연결 탭을 클릭한 다음 LAN 설정 을 클릭합니다.

  3. 프록시 서버 항목에서 "사용자 LAN에 프록시 서버 사용" 체크박스를 선택하고 "로컬 주소에 프록시 서버 사용 안 함" 체크 박스 또한 선택합니다.

  4. "고급" 버튼을 클릭하면 볼 수 있는 프록시 설정 창에서 Socks 항목에 올바른 미꾸라지 중계 서버의 IP 와 Port 정보를 입력합니다.

  5. 모든 정보 변경을 마쳤으면 Internet Explorer로 돌아갈 때까지 확인을 클릭합니다.