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

공정위 광고 문구 Ver 3.1
공정위 광고 문구 Ver 3.2(모바일 전용)

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

  • nslookup 명령어

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

  • Syslog란 무엇인가? | rsyslog.conf 설정

    Syslog는 원래 Sendmail의 일부로 개발되었으며, 이후 로그 관리의 편리함이 인식되면서 독립적인 표준으로 발전하게 되었습니다. System Logging의 약자로, 로그를 기록하고 관리하는 표준 서비스 또는 프로토콜을 의미합니다. 메일 서버, FTP 서버 등 다양한 프로그램이 생성하는 메시지를 중앙에서 수집하여 로그 파일로 저장하고, 이를 분석할 수 있도록 지원합니다. 시스템을 효율적으로 모니터링하고, 잠재적인 문제를 신속하게 식별 및 해결하며,…

  • 스왑 메모리(Swap Memory) 설정: 파티션&파일 2가지 방식 | swapon, mkswap 명령어

    리눅스 스왑 메모리(Swap Memory)는 실제 디스크 공간을 메모리처럼 사용하는 개념이기 때문에 물리 메모리인 RAM보다 처리 속도가 느리지만 물리 메모리가 가득 찬 경우를 대비해 디스크 공간에서 할당 된 스왑 메모리를 생성해서 관리할 수 있어 한정된 리소스를 효율적으로 사용할 수 있습니다. ✅ Swap 파일 시스템 Swap 파일 시스템은 리눅스의 가상 메모리를 사용하기 위한 파일 시스템이며,…

  • [Ubuntu] 우분투 설치(22.04.5) | 우분투 root 초기 비밀번호 생성

    오라클의 VitualBox로 우분투 설치를 진행해 보겠습니다. 먼저 IOS 파일을 다운로드 받기 위해 구글에서 [우분투 서버 다운로드]를 검색해서 설치하고자 하는 우분투 버전을 확인 후 다운로드를 진행합니다. 저의 경우는 22.04.5 버전을 설치하기로 했기에 예전 버전을 찾은 후 진행하였습니다. ✅ VitualBox 우분투 ISO 설정 다운로드가 완료 되었다면, VitualBox에서 [새로 만들기] 버튼을 누릅니다. 가상 머신 이름 입력…

  • 리눅스 host 명령어 | DNS 조회 명령어

    host 명령어는 DNS(Domain Name System) 조회를 할 때 사용하는 명령어입니다. 호스트 이름에 해당하는 IP 주소를 찾거나, 반대로 IP 주소를 호스트 이름으로 변환하는 데 사용됩니다. 네트워크 연결 문제를 해결하거나 호스트 이름과 IP 주소 간의 매핑을 확인하는 데 유용합니다. ✅ host 명령어 사용법 기본 사용 옵션은 다음과 같습니다. 예를 들어 네이버의 IP 주소를 찾을 경우…

  • 리눅스 head 명령어 & tail 명령어

    리눅스 head 명령어는 파일의 처음 10줄을 보여주는 명령어이며, tail 명령어는 파일의 마지막 10줄을 보여주는 명령어입니다. 옵션 없이 사용할 경우 각각의 머리와 꼬리 부분을 보여주는 것을 알 수 있습니다. head와 tail 명령어는 보통 서버의 access_log를 볼 때 주로 많이 사용됩니다. 두 명령어의 사용법과 테스트 서버에서 access_log를 각각의 명령어를 통해 확인 해 보겠습니다. ✅ 리눅스…

답글 남기기

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

Prove your humanity: 3   +   8   =