Cache-Terminator (일명, 캐시 종결자) for 미꾸라지
안녕하세요.
개인적으로 사용할려고 만든 Cache Server 을 사용하실 분이 얼마나 계실지 모르겠지만, 그래도 워낙 BSD 라이센스로 된 코드들의 덕을 많이 본지라 허접한 코드이지만 어떤 개발자분들에게는 조금이나마 도움이 될지 모른다는 생각에 공개를 하려고 합니다. Cache-Terminator 라고 이름을 지었구요, 이 이름을 지었을 때 뉴스에 종결자 단어가 난무하던 때였던지라.... orz 소스의 라이센스는 당연히 BSD 2-clause license 입니다.
Cache-Terminator 는 Varnish cache server (http://www.varnish-cache.org) v2.1.5 기반으로 만들어졌습니다. 하지만 기존 코드와는 다른 부분으로는
- Varnish 의 경우, blocking 모델로 만들어져 있는 반면, Cache-Terminator 는 non-blocking multi-thread 모델로 되어 있습니다. 간단하게 이야기하면 동시 접속자가 많을 때 Varnish 는 쓰레드 500개를 혹은 더 뛰우지만 Cache-Terminator는 16개로 모두 처리합니다.
- SSL 을 지원합니다. Client 와 Backend side 둘다 지원합니다.
- SOCKSv4 와 SOCKSv5 프로토콜을 지원합니다.
- Transparent proxy 기능을 지원합니다. (CONNECT method 또한 지원합니다.)
Varnish 가 reverse cache server 목적으로 만들어진 반면, Cache-Terminator 는 transparent proxy 로 동작하게 끔 한 목적이 컸는데요, 최근에 취미삼아 만들고 있는 "미꾸라지 프로그램"의 내부망 서비스에 넣을려고 한 것입니다. (잠깐 광고. http://ww3.loxch.com 미꾸라지 가속 서비스 :-P, 국내 해외 게임 및 HTTP 가속을 지원합니다. 허접하다고 돌 던지지 마세요.) 지금도 "미꾸라지" 내부망에서 활발히 서비스되고 있는 제품이라 안정성은 쬐금은 있을 겁니다. :-)
https://github.com/weongyo/Cache-Terminator
에 전체 소스와 Wiki 에 간단한 (저~~~~ㅇ말 간단한) 예제가 있습니다. 이 허접한 구현을 사용하시다가 이슈나 질문이 생기시면 해당 github repository 에 등록해 주시면 최대한 지원해 드리도록 하겠습니다.
감사합니다.