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"; }
~]# vi /lib/systemd/system/varnish.service
## 기존에 사용하던 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