Varnish Cache (또한 Varnish라고 함)은 웹 서버를 가속화하기 위해 설계된 고성능의 오픈 소스 HTTP 가속기입니다. 이전 글에서는 CentOS 7 및 CentOS 8에서 아파치용 Varnish Cache 설정하는 방법을 설명했습니다.
이 글에서는 Varnish Cache를 Nginx HTTP 서버의 프론트 엔드로 사용하는 방법을 안내하겠습니다. 이 안내서는 CentOS 7에서도 작동해야 합니다. RHEL 7에서도 작동할 것으로 예상됩니다.
요구 사항
단계 1: CentOS 7에 Nginx 웹 서버 설치
1. 기본 CentOS 소프트웨어 저장소에서 Nginx HTTP 서버를 YUM 패키지 관리자를 사용하여 다음과 같이 설치합니다.
# yum install nginx

2. 설치가 완료되면 일단 Nginx 서비스를 시작하고 시스템 부팅 시 자동으로 시작되도록 설정합니다.
# systemctl start nginx # systemctl enable nginx # systemctl status nginx

3. 아래의 명령을 사용하여 포트 80에서 들어오는 패킷을 허용하도록 시스템 방화벽 규칙을 수정합니다.
# firewall-cmd --zone=public --permanent --add-port=80/tcp # firewall-cmd --reload # firewall-cmd --zone=public --permanent --add-port=8080/tcp # firewall-cmd --reload

단계 2: CentOS 7에 Varnish Cache 설치
4. 이제 최신 버전의 Varnish Cache 6에 대한 미리 컴파일된 RPM 패키지가 있습니다(즉, 작성 시점에서의 6.5), 따라서 공식 Varnish Cache 저장소를 추가해야 합니다.
그 전에, 여러 종속성 패키지를 설치하기 위해 EPEL 저장소를 활성화해야 합니다.
# yum install -y epel-release
5. 다음으로, GPG 서명을 처리하는 pygpgme 패키지와 다양한 방법으로 yum의 기능을 확장하는 유용한 유틸리티 컬렉션인 yum-utils를 설치하세요.
# yum install pygpgme yum-utils
6. 이제 아래와 같은 저장소 구성을 포함하는 /etc/yum.repos.d/varnishcache_varnish5.repo라는 파일을 만드세요.
# vi /etc/yum.repos.d/varnishcache_varnish65.repo
중요: 아래 구성에서 el
및 7
을 Linux 배포판과 버전으로 교체하십시오:
[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 캐시 패키지를 설치합니다(패키지 설치 중 y
또는 yes
를 입력하여 GPG 키를 수락하는 것을 잊지 마세요):
# 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: Nginx를 Varnish 캐시와 함께 작동하도록 구성
11. 이 단계에서는 Nginx를 Varnish 캐시와 함께 작동하도록 구성해야 합니다. 기본적으로 Nginx는 포트 80에서 듣습니다. Nginx의 기본 포트를 8080으로 변경하여 Varnish 캐싱 뒤에서 실행되도록 해야 합니다.
Nginx 구성 파일 /etc/nginx/nginx.conf을 열고 포트 80을 듣는 줄을 찾아 아래 스크린샷에 표시된 서버 블록과 같이 포트 8080으로 변경합니다.
# vi /etc/nginx/nginx.conf

참고: 이 작업은 /etc/nginx/conf.d/에 일반적으로 생성되는 모든 서버 블록 구성 파일에서 수행해야 합니다.Varnish를 통해 제공하려는 웹사이트에 대해.
12. 그다음, varnish 서비스 구성 파일을 열고 Varnish가 듣는 포트를 지정하는 매개변수 ExecStart를 찾아 그 값을 6081에서 80으로 변경합니다.
# systemctl edit --full varnish
라인은 다음과 같이 보여야 합니다.
ExecStart=/usr/sbin/varnishd -a :80 -f /etc/varnish/default.vcl -s malloc,256m

13. 그다음, Nginx를 Varnish 프록시의 백엔드 서버로 설정합니다. /etc/varnish/default.vcl 구성 파일에서.
# vi /etc/varnish/default.vcl
백엔드 섹션을 찾아 호스트 IP와 포트를 정의하십시오. 아래는 기본 백엔드 구성입니다. 이를 실제 콘텐츠 서버를 가리키도록 설정하십시오.
backend default { .host = "127.0.0.1"; .port = "8080"; }
14. 필요한 모든 구성을 수행한 후 Nginx HTTPD와 Varnish 캐시를 다시 시작하여 위의 변경 사항을 적용하십시오.
# systemctl daemon-reload # systemctl restart nginx # systemctl restart varnish
단계 4: Nginx에서 Varnish 캐시 테스트
15. 마지막으로 아래의 cURL 명령어를 사용하여 Nginx 서비스에서 Varnish 캐시가 활성화되어 작동하는지 테스트하십시오. HTTP 헤더를 보려면 아래의 샘플 출력을 사용하십시오.
# curl -I http://localhost
샘플 출력
HTTP/1.1 200 OK Server: nginx/1.16.1 Date: Wed, 06 Jan 2021 09:24:18 GMT Content-Type: text/html Content-Length: 4833 Last-Modified: Fri, 16 May 2014 15:12:48 GMT ETag: "53762af0-12e1" X-Varnish: 2 Age: 0 Via: 1.1 varnish (Varnish/6.5) Accept-Ranges: bytes Connection: keep-alive
추가 정보는 Varnish Cache Github 저장소에서 찾을 수 있습니다: https://github.com/varnishcache/varnish-cache
본 튜토리얼에서는 CentOS 7에서 Nginx HTTP 서버에 Varnish Cache를 설정하는 방법을 설명했습니다. 추가 쿼리 또는 아이디어를 보내려면 아래의 코멘트 양식을 사용하십시오.
Source:
https://www.tecmint.com/install-varnish-cache-for-nginx-on-centos-7/