검색 엔진의 방문이 늘어나고 있군...

Posted
Filed under 프로그램과 명령어/서버와 서비스
참조 원문 : How to Install Varnish Cache (Web Accelerator) in RHEL/CentOS/Fedora and Ubuntu/Debian
관련 글(고급 내용 포함) : Speed Up Your Web Site with Varnish

  Varnish Cache는 오픈 소스 웹 애플리케이션 가속기로서 HTTP 가속기 또는 캐싱 HTTP 리버스 프록시라고도 불리는 종류의 프로그램입니다. HTTP 요청을 받는 서버의 프론트 엔드로 작동하며 페이지를 캐시합니다.

  사용자가 웹사이트를 처음 방문할 때 varnish가 제공한 페이지의 복사본을 보관하고 있다가 어떤 사용자가 같은 페이지에 또 방문했을 때 웹 서버에 페이지를 재요청하는 대신 보관하고 있던 페이지를 제공합니다. 이를 통해 웹사이트의 성능과 확장성을 높이고 많은 트래픽을 다룰 수 있으며 서버의 대역폭을 아낄 수 있습니다.

  이 글에서는 IP가 192.168.2.10인 웹 서버의 캐시 서버로서 IP가 192.168.2.3인 서버에 Varnish를 설치해보겠습니다. 그러므로 아래 설치 작업은 192.168.2.3 서버에서 하는 것으로 가정합니다.


레드햇 계열에 설치하는 방법
  Varnish가 EPEL(Extra Packages Enterprise Linux) 저장소에 있긴 하지만 구버전이므로 홈페이지의 저장소를 통해 설치하는 방법을 소개합니다.
# wget http://repo.varnish-cache.org/redhat/varnish-3.0/el5/noarch/varnish-release-3.0-1.noarch.rpm
# rpm --nosignature -i varnish-release-3.0-1.noarch.rpm
# yum install varnish


우분투에 설치하는 방법
  우분투의 저장소에도 패키지가 있지만 위와 같은 이유로 홈페이지의 저장소를 통해 설치합니다.
# wget http://repo.varnish-cache.org/debian/GPG-key.txt
# apt-key add GPG-key.txt
# echo "deb http://repo.varnish-cache.org/ubuntu/ precise varnish-3.0" | sudo tee -a /etc/apt/sources.list
# sudo apt-get update
# sudo apt-get install varnish


데비안에 설치하는 방법
  역시나 같은 이유로 홈페이지 저장소를 통해 설치합니다. 우분투와 저장소 경로가 약간 다릅니다.
# wget http://repo.varnish-cache.org/debian/GPG-key.txt
# apt-key add GPG-key.txt
# echo "deb http://repo.varnish-cache.org/debian/ squeeze varnish-3.0" >> /etc/apt/sources.list
# apt-get update
# apt-get install varnish


부팅 시 Varnish 웹 가속기를 시작하게 하기
  레드햇 계열 배포판이라면 아래 명령어로 부팅 시 자동으로 시작하게 합니다. 우분투는 설치 시 자동으로 설정되는 것을 확인했습니다.
# chkconfig --level 345 varnish on


아파치와 연동하기 위한 최소 설정
  Varnish는 2개의 주요 설정 파일이 존재합니다. 첫 번째 설정 파일은 시스템 전역 설정 파일로 레드햇 계열의 경우 /etc/sysconfig/varnish, 데비안 계열의 경우 /etc/default/varnish 파일입니다. 이 파일은 Varnish의 주요 전역 설정 파일로 그 내용 중 지금 가장 중요한 것은 Varnish가 사용할 포트입니다. Varnish는 기본적으로 6081 포트를 사용하지만 웹 서버의 캐시 서버로 사용할 것이기 때문에 80포트를 사용하도록 수정하겠습니다. 아래는 80포트를 사용하도록 수정한 모습입니다.
DAEMON_OPTS="-a :80 \
             -T localhost:6082 \
             -f /etc/varnish/default.vcl \
             -S /etc/varnish/secret \
             -s malloc,256m"
  두 번째 설정 파일은 /etc/varnish/default.vcl 파일입니다. 이 파일은 Varnish 설정의 대부분을 담당하고 있습니다. 지금은 아래의 부분만 수정합니다.
backend default {
    .host = "192.168.2.10";
    .port = "80";
}
  웹 서버의 IP와 포트로 수정합니다. 수정 후 Varnish를 작동시킵니다.
# /etc/init.d/varnish start
  이제 아래처럼 curl 프로그램을 통해 Varnish가 제대로 작동하고 있는지 확인합니다. 물론 웹 브라우저로도 확인해봅니다.
$ curl -I http://192.168.2.3
HTTP/1.1 200 OK
Server: Apache/2.2.24 (PowerStack)
Set-Cookie: TSSESSIONwwwmyservlabcom=17f8459d6ec03b837002ba1f11b9b49b; path=/; domain=192.168.2.3
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Content-Type: text/html; charset=utf-8
Content-Length: 14582
Accept-Ranges: bytes
Date: Mon, 08 Jul 2013 11:50:12 GMT
X-Varnish: 1229318888
Age: 0
Via: 1.1 varnish
Connection: keep-alive
2013/07/08 20:54 2013/07/08 20:54