의식여행

[Varnish] Varnish 설치 및 설정하기 본문

카테고리 없음

[Varnish] Varnish 설치 및 설정하기

의식여행중 2018. 7. 6. 19:07

Varnish란?

varnish는 콘텐츠가 많은 동적 웹사이트 및 API용으로 설계된 무료 오픈 소스 웹캐시 솔루션 입니다.
또한 클라이언트 측 캐시로 시작된 Squid나, Nginx Proxy와 달리 HTTP에만 중점을 둔 가속기로 설계되었습니다.

다운로드 경로 : https://varnish-cache.org/releases/
선행 설치 RPM : jeamlloac, jemalloc-devel (메모리 할당 관련 라이브러리 제공)


-이미지 출처 : http://www.safaribooksonline.com

웹 서버로만 서비스하는 경우 I/O Overload 발생 문제와, HDD의 성능에 의존하는 문제점이 생길 수 있지만
Vanish를 사용하면 Origin Server에 요청한 데이터를 동적 메모리 공간에 저장 후 처리를 진행할 수 있습니다.

1) 특징

-Varnish Configuration Language(VCL)

Varnish는 설정을 위해 VCL이라는 별도의 DSL(Domain-Specific Language)를 제공합니다.
사용자는 VCL을 사용하여 설정 파일을 작성할 수 있습니다.

설정 파일 작성 -> C프로그램 변환 -> 공유라이브러리 컾마일

2) Edge-Side-Includes(ESI) 지원

동적 콘텐츠를 여러 조각으로 분리하여 따로 캐싱하는 기술을 기본으로 지원합니다.
(사용자 입장에서 같은 부분을 제외하고, 다른 부분만을 캐싱 가능)

3) Purge

TTL이 지나기전에 강제로 캐싱을 삭제하는 기능입니다.(URL 지정 or 정규 표현식)

4) grace Mode

TTL 시간이 지난 캐시 데이터를 사용 가능하게 만들어 줍니다.

5) Load Balancing

6) Health Check 기능

7) 압축 지원

설정방법(RPM)

-jemalloc -> jemalloc-devel -> varnish 순으로 RPM 설치 진행

설정방법

1) /etc/varnish/default.vcl

backend default {

.host = "X.X.X.X"; // WEB/WAS server의 IP 입력
.port = "80" // HTTP Port 입력

}

2) /etc/varnish/varnish.params

VARNISH_LISTEN_PORT = XX; // varnish service Port 입력
VARNISH_ADMIN_LISTEN_ADDRESS=X.X.X.X // Proxy Server IP 입력
VARNISH_STORAGE="malloc,1G" // 메모리 캐시공간의 용량

3) systemctl enable varnish.service

4) systemctl start varnish.service 

상세한 내용은 해당 블로그 참고 - https://d2.naver.com/helloworld/352076

감사합니다.

Comments