Varnish Cache란 무엇인가? | Varnish 설치 및 기본 설정하기

Varnish Cache는 동적 웹사이트와 API에 적합한 HTTP 가속기입니다. 이는 스퀴드와 같은 클라이언트 사이드 캐시 역할을 하는 다른 웹 가속기와 달리 Nginx, 아파치와 같은 원본 서버 대신 HTTP 가속기로 설계 되었습니다.

또한, Varnish는 HTTP에 특화되어 있어 FTP, SMTP 및 다른 통신 프로토콜을 지원하는 프록시 서버와는 다릅니다.

✅ Varnish Cache 설치

~]# dnf -y install varnish
Last metadata expiration check: 2:14:30 ago on Thu 01 Aug 2024 11:39:12 AM UTC.
Dependencies resolved.
======================================================================================================================
 Package                  Architecture            Version                            Repository                  Size
======================================================================================================================
Installing:
 varnish                  x86_64                  6.6.2-4.el9_3.1                    appstream                  1.1 M

Transaction Summary
======================================================================================================================
Install  1 Package

Total download size: 1.1 M
Installed size: 3.6 M
Downloading Packages:
varnish-6.6.2-4.el9_3.1.x86_64.rpm                                                    4.0 MB/s | 1.1 MB     00:00
----------------------------------------------------------------------------------------------------------------------
Total                                                                                 1.1 MB/s | 1.1 MB     00:00
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                                              1/1
  Running scriptlet: varnish-6.6.2-4.el9_3.1.x86_64                                                               1/1
  Installing       : varnish-6.6.2-4.el9_3.1.x86_64                                                               1/1
  Running scriptlet: varnish-6.6.2-4.el9_3.1.x86_64                                                               1/1
  Verifying        : varnish-6.6.2-4.el9_3.1.x86_64                                                               1/1

Installed:
  varnish-6.6.2-4.el9_3.1.x86_64

Complete!
~]# varnishd -V
varnishd (varnish-6.6.2 revision 17c51b08e037fc8533fb3687a042a867235fc72f)
Copyright (c) 2006 Verdens Gang AS
Copyright (c) 2006-2020 Varnish Software
~]# systemctl start varnish
~]# systemctl enable varnish
Created symlink /etc/systemd/system/multi-user.target.wants/varnish.service  /usr/lib/systemd/system/varnish.service.

✅ Varnish Cache 구성

ExecStart로 시작하는 줄을 포트 6081에서 포트 80으로 변경한 다음 파일을 저장하고 닫습니다. 완료되면 줄이 다음과 같아야 합니다.

~]# vi /etc/varnish/default.vcl

backend default { .host = "127.0.0.1"; .port = "8080"; }
# 6081  80으로 변경
~]# vi /lib/systemd/system/varnish.service
ExecStart=/usr/sbin/varnishd -a :80 -f /etc/varnish/default.vcl -s malloc,256m
ExecReload=/usr/sbin/varnishreload


## 기존에 사용하던 HTTP 포트 번호는 8080으로 변경해 줍니다.##
~]# vi /etc/httpd/conf/httpd.conf
Listen 8080
~]# vi /etc/httpd/conf.d/virtual.conf
<VirtualHost *:8080>
    ServerName ...
## 
~]# systemctl daemon-reload
~]# systemctl restart varnish
[root@ip-172-26-6-43 yum.repos.d]#

✅ Varnish 설치 확인

바니쉬 캐시 설치가 완료 되었습니다. 정상적으로 작동하는지 확인 해 봅니다.

~]# curl -I http://mydomain.com
HTTP/1.1 301 Moved Permanently
Date: Thu, 01 Aug 2024 15:36:16 GMT
Server: Apache/2.4.57 (AlmaLinux) OpenSSL/3.0.7
Location: https://mydomain.com/
Content-Length: 228
Content-Type: text/html; charset=iso-8859-1
X-Varnish: 32772
Age: 0
Via: 1.1 varnish (Varnish/6.6)
Connection: keep-alive
  • ~]# curl -I http://mydomain.com
  • HTTP/1.1 301 Moved Permanently: 요청이 영구적으로 이동했음을 의미합니다. HTTP에서 HTTPS로 리디렉션되었음
  • Location https://mydomain.com: 클라이언트가 요청한 URL이 https://tozisin.com/으로 이동 되었음.
  • X-Varnish: 32772: Varnish가 요청을 처리한 ID(요청이 성공적으로 처리됨)
  • Age: 0: Varnish 캐시에서 이 응답이 생성된 지 얼마나 시간이 지났는지를 나타내며, 0은 방금 생성됨을 의미
  • Via: 1.1 varnish (Varnish/6.6): 요청이 Varnish를 통해 처리되었음.
  • Connection: keep-alive: 연결이 계속 유지된다는 것을 나타냄.
Varnish Cache 로고

Similar Posts

  • 리눅스 touch 명령어

    touch 명령어는 파일의 날짜 시간 정보를 변경하는 명령어입니다. 아무 옵션 없이 사용할 경우 파일의 최근 사용 시간, 변경 시간이 서버의 현재 시간으로 변경됩니다. 파일이 없는 파일명을 입력할 경우 새로운 크기가 0인 빈 파일이 생성됩니다. 목차✅ Varnish Cache 설치✅ Varnish Cache 구성✅ Varnish 설치 확인✅ touch 명령어 기본 사용 방법 ✅ touch 명령어 명령어…

  • 리눅스 killall 명령어: 설치, 사용 방법과 옵션

    리눅스 killall 명령어는 특정 프로세스를 한번에 종료 시키는 명령어입니다. kill과 killall은 단순 종료가 아닌 프로세스에 지정한 시그널(Signal)을 보내는 명령어로 시그널에서 액션이 종료일 때 프로세스가 종료됩니다. 목차✅ Varnish Cache 설치✅ Varnish Cache 구성✅ Varnish 설치 확인✅ 리눅스 killall 명령어 설치 대부분의 유닉스 시스템에서는 killall 명령어가 설치되어 있지만 설치되어 있지 않은 경우 psmisc 패키지를 설치해서…

  • 리눅스 cd 명령어

    cd 명령어는 “Change Directory”의 약자로, 현재 작업 디렉토리(현재 위치)를 다른 디렉토리로 이동할 때 사용하는 명령어입니다. 목차✅ Varnish Cache 설치✅ Varnish Cache 구성✅ Varnish 설치 확인✅ cd 명령어 기본 사용 방법 ✅ 사용 예시 cd 명령은 절대 경로(/부터 시작)를 기입해서 이동하는 방식과 상대 경로(. 및 ..)를 이용해서 이동하는 방식으로 나뉩니다.

  • nslookup 명령어

    nslookup 명령어는 네임 서버 조회(Name Server Lookup)를 뜻하는 명령어로 네임 서버의 정보를 얻기 위한 명령어입니다. DNS(Domain Name System)에 질의 후 대상 도메인의 IP 주소나 DNS 레코드 등의 정보를 얻기 위한 네트워크 명령어입니다. DNS 서버의 정상적인 작동을 통해 정상적인 네트워크 설정이 되었는지 확인할 때 많이 사용하게 되는 명령어 중 하나입니다. 보통 맥 OS 및…

  • 리눅스 패키지(Linux Packag)란 무엇인가?

    리눅스 패키지(Linux Packag)를 윈도우와 비교하자면, 윈도우의 인스톨러 파일(.msi, .exe)는 소프트웨어를 설치하는 데 사용되며, 리눅스에서는 비슷한 개념으로 패키지 관리자를 이용하여 소프트웨어를 설치합니다. 리눅스 패키지는 실행파일, 라이브러리, 설정 파일 등을 하나의 패키지로 묶어 제공하며, 패키지 관리자를 통해 해당 패키지를 다운로드하고 시스템에 설치합니다. 윈도우의 인스톨러와 유사하게, 리눅스는 패키지 관리자를 통해 사용자가 소프트웨어를 쉽게 설치, 업데이트, 삭제할…

  • Linux란? 리눅스의 특징 및 리눅스의 종류

    목차✅ Varnish Cache 설치✅ Varnish Cache 구성✅ Varnish 설치 확인■ ‘Linux’란? -simple ‘Linux’ 는 유닉스의 무료 버전(오픈소스)으로 이해하면 된다.  유닉스는1969년 벨 연구소에서 만들어졌습니다.  리눅스는 1991년 8월 리누스 토르발스가 어셈블리어로 리눅스 커널(kernel) 0.01 버전을 만들면서 시작되었습니다. 1992년에 0.02 버전이 만들어지면서 인터넷에 소스 코드를 공개한 것이 리눅스의 탄생입니다. Ⅰ. 리눅스의 특징 Ⅱ. 리눅스의 종류 유닉스에서…

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

Prove your humanity: 7   +   1   =