바니시 캐시 (일반적으로 바니시로 알려짐)은 웹 서버의 속도를 높이기 위해 설계된 오픈 소스이자 인기 있는 리버스 프록시 HTTP 가속기입니다. 이는 과도하게 사용되는 API 엔드포인트 및 대규모 콘텐츠를 제공하고 고트래픽을 경험하는 동적 사이트에 대해 공학적으로 설계되었습니다.
기본적으로 CPU 부하를 줄이는 데 도움이 되며, 웹 서버에서 로드 밸런싱을 지원하고 캐시를 RAM에 저장하여 웹 브라우저가 빠르게 사이트를 로드할 수 있도록 합니다. Facebook, Twitter,, 위키피디아를 비롯한 여러 대기업이 사용하고 있습니다.
요구 사항
이 기사에서는 바니시 캐시 6.5를 Apache 웹 서버의 프론트 엔드로 사용하는 방법을 설명하겠습니다. 이는 CentOS 7에서 (또한 RHEL 7에서 작동함) 작동합니다.
단계 1: CentOS 7에 Apache 웹 서버 설치
1. 먼저 기본 CentOS 소프트웨어 저장소에서 Apache HTTP 서버를 YUM 패키지 관리자를 사용하여 다음과 같이 설치합니다.
# yum install httpd

2. Apache를 설치한 후 일시적으로 시작하고 시스템 부팅 시 자동으로 시작되도록 설정합니다.
# systemctl start httpd # systemctl enable httpd # systemctl status httpd

3. 다음으로 아래 명령어를 사용하여 포트 80에서 들어오는 패킷을 허용하는 시스템 방화벽 규칙을 업데이트하십시오.
# firewall-cmd --zone=public --permanent --add-service=http # firewall-cmd --reload

단계 2: CentOS 7에 Varnish Cache 설치하기
4. 현재 Varnish Cache 6 최신 버전을 위한 미리 컴파일된 RPM 패키지가 있습니다(즉, 작성 시점의 6.5 버전). 따라서 공식 Varnish Cache 저장소를 추가해야 합니다.
그 전에, yum의 원래 기능을 여러 방식으로 확장하는 유용한 유틸리티 모음인 의존성 패키지를 설치하려면 EPEL 저장소를 활성화해야 합니다.
# yum install -y epel-release
5. 다음으로 GPG 서명을 처리하는 패키지인 pygpgme와, yum의 기능을 다양하게 확장하는 유용한 유틸리티 모음인 yum-utils를 설치하십시오.
# yum install pygpgme yum-utils
6. 이제 아래 저장소 구성을 포함하는 /etc/yum.repos.d/varnishcache_varnish65.repo 파일을 만드십시오.
# vi /etc/yum.repos.d/varnishcache_varnish65.repo
중요: 아래 구성에서 el
및 7
을 해당하는 리눅스 배포판 및 버전으로 바꿔야 합니다.
[varnishcache_varnish65] name=varnishcache_varnish65 baseurl=https://packagecloud.io/varnishcache/varnish65/el/7/$basearch repo_gpgcheck=1 gpgcheck=0 enabled=1 gpgkey=https://packagecloud.io/varnishcache/varnish65/gpgkey sslverify=1 sslcacert=/etc/pki/tls/certs/ca-bundle.crt metadata_expire=300 [varnishcache_varnish65-source] name=varnishcache_varnish65-source baseurl=https://packagecloud.io/varnishcache/varnish65/el/7/SRPMS repo_gpgcheck=1 gpgcheck=0 enabled=1 gpgkey=https://packagecloud.io/varnishcache/varnish65/gpgkey sslverify=1 sslcacert=/etc/pki/tls/certs/ca-bundle.crt metadata_expire=300
7. 이제 아래 명령어를 실행하여 로컬 yum 캐시를 업데이트하고 varnish cache 패키지를 설치하십시오(패키지 설치 중에 GPG 키를 수락하기 위해 y
또는 yes
를 입력하는 것을 잊지 마십시오):
# yum -q makecache -y --disablerepo='*' --enablerepo='varnishcache_varnish65' # yum install varnish

8. Varnish Cache를 설치한 후, 주 실행 파일은 /usr/sbin/varnishd로 설치되며, varnish 구성 파일은 /etc/varnish/에 위치합니다:
- /etc/varnish/default.vcl – 이것은 주 varnish 구성 파일로, vanish 구성 언어 (VCL)를 사용하여 작성됩니다.
9. 이제 varnish 서비스를 시작하고, 시스템 부팅 중에 자동으로 시작되도록 활성화하고, 다음과 같이 실행 중인지 확인하여 상태를 확인하십시오.
# systemctl start varnish # systemctl enable varnish # systemctl status varnish

10. Varnish 설치가 성공적으로 이루어졌는지 확인하려면 시스템에 설치된 Varnish 실행 파일 및 버전 위치를 확인할 수 있습니다.
$ which varnishd $ varnishd -V
샘플 출력
varnishd (varnish-6.5.1 revision 1dae23376bb5ea7a6b8e9e4b9ed95cdc9469fb64) Copyright (c) 2006 Verdens Gang AS Copyright (c) 2006-2020 Varnish Software
단계 3: Apache를 Varnish Cache와 함께 작동하도록 구성
11. 이제 Apache를 Varnish Cache와 함께 작동하도록 구성하십시오. 기본적으로 Apache는 포트 80에서 수신 대기하므로, 기본 HTTPD 포트를 8080으로 변경해야 합니다 – 이렇게 하면 HTTPD가 Varnish 캐싱 뒤에서 실행됩니다.
sed 명령어를 사용하여 포트 80을 8080으로 변경할 수 있습니다.
# sed -i "s/Listen 80/Listen 8080/" /etc/httpd/conf/httpd.conf
참고: 또한, Varnish를 통해 제공하려는 각 웹 사이트의 가상 호스트 구성에서 포트를 변경해야 합니다. 다음은 테스트 사이트(/etc/httpd/conf.d/tecmint.lan.conf)의 구성입니다.
<VirtualHost *:8080> DocumentRoot "/var/www/html/tecmint.lan/" ServerName www.tecmint.lan # Other directives here </VirtualHost>
12. 그다음, varnish systemd 구성 파일을 열고 Varnish가 수신 대기하는 포트를 지정하는 ExecStart 매개변수를 찾아서 화면 샷에 표시된 대로 값을 6081에서 80으로 변경하십시오.
# systemctl edit --full varnish
구성이 완료되면 다음과 같아야 합니다.
ExecStart=/usr/sbin/varnishd -a :80 -f /etc/varnish/default.vcl -s malloc,256m

13. 그다음, Varnish 프록시를 위한 백엔드 서버로 Apache를 설정하십시오. /etc/varnish/default.vcl 구성 파일에서.
# vi /etc/varnish/default.vcl
백엔드 섹션을 찾아서 호스트 IP와 포트를 정의하십시오. 아래는 기본 백엔드 구성입니다. 실제 콘텐츠 서버를 가리키도록 이를 설정하십시오.
backend default { .host = "127.0.0.1"; .port = "8080"; }
백엔드 서버가 10.42.1.10 주소의 다른 서버에서 실행 중인 경우, 호스트 매개변수는 이 IP 주소를 가리켜야 합니다.
backend server1 { .host = "10.42.1.10"; .port = "8080"; }
14. 필요한 모든 구성을 완료한 후, 위의 변경 사항을 적용하기 위해 HTTPD 및 Varnish 캐시를 다시 시작하십시오.
# systemctl daemon-reload # systemctl restart httpd # systemctl restart varnish
단계 4: Apache에서 Varnish 캐시 테스트
15. 마지막으로, 아래의 cURL 명령어를 사용하여 HTTPD 서비스가 활성화되어 작동하는지 테스트하십시오. 이 명령어는 HTTP 헤더를 볼 수 있습니다.
# curl -I http://localhost
샘플 출력
HTTP/1.1 200 OK Date: Wed, 06 Jan 2021 08:36:07 GMT Server: Apache/2.4.6 (CentOS) Last-Modified: Thu, 16 Oct 2014 13:20:58 GMT ETag: "1321-5058a1e728280" Accept-Ranges: bytes Content-Length: 4897 Content-Type: text/html; charset=UTF-8 X-Varnish: 131085 Age: 0 Via: 1.1 varnish (Varnish/6.5) Connection: keep-alive
더 많은 정보는 Varnish Cache Github 저장소를 확인하십시오: https://github.com/varnishcache/varnish-cache
이 튜토리얼에서는 CentOS 7에서 Apache HTTP 서버에 대한 Varnish Cache 6.5 프록시 설정 방법을 설명했습니다. 궁금한 점이나 추가 아이디어가 있으면 아래의 피드백 양식을 사용하여 저희에게 문의해 주십시오.
Source:
https://www.tecmint.com/install-varnish-cache-on-centos-7-for-apache/