바니시(소프트웨어)

Varnish (software)
바니시
개발자폴-헤닝 캠프, 레드필-린프로, 바니시 소프트웨어
안정적 해제
7.0.2[1] / 2022년 1월 25일; 57일 전(2022년 1월 25일)
리포지토리
기록 위치C
운영 체제BSD, 리눅스, 유닉스
유형HTTP 액셀러레이터
면허증2클라우드 BSD 라이센스
웹사이트varnish-cache.org Edit this on Wikidata

바니쉬는 콘텐츠 중심의 동적사이트뿐 아니라 API를 위해 설계된 HTTP 액셀러레이터다.클라이언트측 캐시로 수명을 시작한 Squid나 주로 오리진 서버Apachenginx와 같은 다른 웹 액셀러레이터와는 대조적으로 Varnish는 HTTP 액셀러레이터로 설계되었다.바니시는 FTP, SMTP 및 기타 네트워크 프로토콜을 지원하는 다른 프록시 서버와 달리 HTTP에만 집중되어 있다.

역사

이 프로젝트는 노르웨이의 타블로이드 신문인 베르덴스 갱의 온라인 지사에 의해 시작되었다.건축가 겸 리드 개발자는 덴마크의 독립 컨설턴트 Poul-Henning Kamp(FreeB)이다.원래 노르웨이 리눅스 컨설팅 회사인 린프로에서 제공하는 관리, 인프라 및 추가 개발 기능을 갖춘 SD 개발자.바니시의 지원, 관리, 개발은 후에 별도의 회사인 바니시 소프트웨어로 분리되었다.

Varnish는 무료 오픈 소스 소프트웨어로, 2개 조항 BSD 라이센스로 이용할 수 있다.바니시 소프트웨어에서 상업적 지원을 받을 수 있다.

2006년 버전 1.0,[2][3] 2008년 버전 2.0,[4] 2011년 버전 3.0,[5] 2014년 바니시 [6]4.0, 2016년 [7]바니시 5.0, 2018년 3월 바니시 6.0 등이 출시됐다.[8]

건축

바니쉬는 가상 메모리에 데이터를 저장하고 메모리에 저장되는 것과 디스크에 저장되는 것을 운영 체제에 결정하는 작업을 남겨둔다.이는 운영 체제가 데이터를 디스크에 저장한 상태에서 애플리케이션에 의해 캐싱을 시작하는 상황을 방지하는 데 도움이 된다.

바니시는 각 클라이언트 연결이 별도의 작업자 쓰레드에 의해 처리되는 등 심하게 나사산 처리된다.활성 작업자 스레드 수에 대해 구성된 제한에 도달하면 들어오는 연결이 오버플로 대기열에 배치되고, 이 대기열이 구성된 제한에 도달하면 들어오는 연결이 거부된다.

주요 구성 메커니즘은 VCL(Varnish Configuration Language)이며, 각 요청의 처리에서 중요한 지점에서 호출되는 후크를 작성하는 데 사용되는 도메인별 언어(DSL)이다.대부분의 정책 결정은 VCL 코드에 맡겨져 있어 Varnish는 대부분의 다른 HTTP 가속기에 비해 구성 가능하고 적응성이 뛰어나다.[citation needed]VCL 스크립트가 로드되면 C로 변환되어 시스템 컴파일러에 의해 공유 개체로 컴파일되고 가속기에 직접 로드되므로 다시 시작하지 않고 재구성할 수 있다.

다수의 런타임 매개변수는 작업자 스레드의 최대 및 최소 수, 다양한 시간 초과 등과 같은 것들을 제어한다.명령줄 관리 인터페이스를 사용하면 가속 페달을 다시 시작하지 않고도 이러한 매개 변수를 수정할 수 있으며 새로운 VCL 스크립트를 컴파일, 로드 및 활성화할 수 있다.

빠른 경로의 시스템 호출 횟수를 최소한으로 줄이기 위해 로그 데이터를 공유 메모리에 저장하고, 로그 데이터를 감시, 필터링, 포맷하고 디스크에 쓰는 작업을 별도의 애플리케이션에 위임한다.

성능 메트릭

바니쉬 캐시는 정보 전달 속도를 수백 배까지 높일 수 있다.바니쉬는 적절한 작동과 성능을 보장하기 위해 다음 영역에서 모니터링할 수 있는 지표를 공개한다.[9]

  • 클라이언트 메트릭: 클라이언트 연결 및 요청
  • 캐시 성능: 캐시 적중, 제거
  • 스레드 메트릭: 스레드 생성, 실패, 대기열
  • 백엔드 메트릭: 백엔드 연결의 성공, 실패 및 상태

미터법 수집

Varnish Cache는 모니터링 및 로깅 툴과 함께 제공되며,가장 많이 사용되는 것 중 하나는 바니쉬의 현재 성능을 자세히 보여주는 바니쉬스타트다.캐시 적중 및 누락, 리소스 소비, 생성된 스레드 등과 같은 메모리 내 통계에 대한 액세스를 제공한다.[10]

니쉬스타트

명령줄에서 Varnishstat를 실행하면 사용 가능한 모든 Varnish 메트릭의 계속 업데이트 목록이 반환된다.-1 플래그가 추가되면 목록을 한 번 인쇄한 후 varnishstat가 종료된다.[11]Varnishstat는 캐시의 상태를 확인하는 독립 실행형 도구로 사용할 수 있다.시간 경과에 따른 메트릭을 그래프로 표시하고, 인프라 전체의 다른 통계와 상관하며, 발생할 수 있는 문제에 대한 경고를 설정하기 위해 모니터링 서비스를 Varnish와 통합하고 Varnishstat 메트릭을 수집할 수 있다.

니스로그

바니쉬로그는 바니쉬의 구성을 디버그하거나 튜닝하는 데 사용할 수 있는 도구로, 각각의 개별 요청에 대한 상세한 정보를 제공한다.

부하분산

바니쉬는 백엔드당 가중치를 적용하여 라운드 로빈과 랜덤 디렉터리를 모두 사용하여 로드 밸런싱을 지원한다.백엔드의 기본적인 건강검진도 이용할 수 있다.[12]

기타 기능

Varnish Cache는 다음과 같은 기능도 갖추고 있다.

  • Varnish 모듈을 통한 플러그인 지원(VMOD라고도[13] 함)
  • Edge Side 지원: 압축된 ESI 조각 연결 포함
  • Gzip 압축 및 압축 해제
  • DNS, 랜덤, 해싱 및 클라이언트 IP 기반 이사
  • HTTP 스트리밍 패스 & 가져오기
  • LRU 제거 없이 영구 스토리지에 대한 실험적 지원
  • 세인트[14] 앤 그레이스[15][16] 모드.
    • 서버가 오작동하여 HTTP 상태 코드 500을 반환하는 경우, 그레이스 모드는 만료 헤더를 무시하고 캐시된 버전을 계속 반환한다.세인트 모드는 장애가 발생한 서버가 검역 기간 동안 블랙리스트에 올라 서버 풀에서 제외되는 로드 밸런싱 시 사용된다.

참고 항목

참조

  1. ^ "VSV00008 Varnish HTTP/1 Request Smuggling Vulnerability". 25 January 2022. Retrieved 9 March 2022.
  2. ^ "Catalyst Advent Calendar - Day 14". www.catalystframework.org. Retrieved Sep 4, 2020.
  3. ^ Smørgrav, Dag-Erling (Sep 20, 2006). "Varnish 1.0 released". Retrieved Sep 4, 2020.
  4. ^ Heen, Tollef Fog (Oct 15, 2008). "Varnish 2.0 released!". Retrieved Sep 4, 2020.
  5. ^ Heen, Tollef Fog (Jun 17, 2011). "Varnish 3.0.0 released". Retrieved Sep 4, 2020.
  6. ^ Karstensen, Lasse (Apr 10, 2014). "Varnish 4.0.0 released". Retrieved Sep 4, 2020.
  7. ^ "Varnish Cache 5.0.0 — Varnish HTTP Cache". varnish-cache.org. Retrieved Sep 4, 2020.
  8. ^ Poul-Henning Kamp (15 March 2018). "Varnish 6.0 Released". Retrieved 15 May 2018.
  9. ^ "Top Varnish performance metrics". Top Varnish performance metrics. Jul 28, 2015. Retrieved Sep 4, 2020.
  10. ^ "How to collect Varnish metrics". How to collect Varnish metrics. Jul 28, 2015. Retrieved Sep 4, 2020.
  11. ^ "varnishstat(1): HTTP accelerator statistics - Linux man page". linux.die.net. Retrieved Sep 4, 2020.
  12. ^ "BackendPolling – Varnish". Varnish-cache.org. Retrieved 2014-07-18.
  13. ^ "VMODs Directory (Varnish Modules and Extensions) Varnish Community". Varnish-cache.org. Retrieved 2014-07-18.
  14. ^ "Saint Mode". Varnish.
  15. ^ "Grace Mode". Varnish.
  16. ^ Feryn, Thijs. Getting Started with Varnish Cache: Accelerate Your Web Applications. O'Reilly Media, Inc. p. 85. ISBN 9781491972229.

외부 링크