웹사이트 검색

CentOS 7에서 Nginx용 Varnish Cache 5.2를 설치하는 방법


Varnish 캐시(Varnish라고도 함)는 웹 서버 속도를 높이기 위해 설계된 오픈 소스 고성능 HTTP 가속기입니다. 지난 기사에서는 CentOS 7 및 CentOS 8에서 Apache용 Varnish Cache를 설정하는 방법을 설명했습니다.

이 글에서는 CentOS 7에서 Nginx HTTP 서버의 프런트엔드로 Varnish Cache를 설치하고 사용하는 방법을 보여드리겠습니다. 이 가이드는 RHEL 7에서도 작동합니다.

요구사항

  1. Apache가 설치된 CentOS 7
  2. 고정 IP 주소를 사용하는 CentOS 7

1단계: CentOS 7에 Nginx 웹 서버 설치

1. 다음과 같이 YUM 패키지 관리자를 사용하여 기본 CentOS 소프트웨어 저장소에서 Nginx HTTP 서버를 설치하는 것부터 시작합니다.

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(즉, 작성 당시 6.5)에 대해 사전 컴파일된 RPM 패키지가 있습니다. 공식 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

중요: 아래 구성의 el7를 해당 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 – 이는 기본 광택 구성 파일이며 VCL(Vanish 구성 언어)을 사용하여 작성됩니다.

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 구성

11. 이 단계에서는 Varnish Cache와 작동하도록 Nginx를 구성해야 합니다. 기본적으로 Nginx는 포트 80에서 수신 대기하므로 기본 Nginx 포트를 8080으로 변경하여 Varnish 캐싱 뒤에서 실행해야 합니다.

Nginx 구성 파일 /etc/nginx/nginx.conf를 열고 Listen 80 줄을 찾아 서버에서와 같이 8080을 수신하도록 변경합니다. 아래 스크린샷에 표시된 블록입니다.

vi /etc/nginx/nginx.conf

참고: 이 작업은 을 통해 제공하려는 웹사이트에 대한 모든 서버 블록 구성 파일(일반적으로 /etc/nginx/conf.d/ 아래에 생성됨)에서 수행되어야 합니다. >바니시.

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. 다음으로 /etc/varnish/default.vcl 구성 파일에서 Nginx를 Varnish 프록시용 백엔드 서버로 설정합니다.

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에서 광택 캐시 테스트

15. 마지막으로 아래 cURL 명령을 사용하여 Varnish 캐시가 활성화되어 있고 Nginx 서비스와 작동하는지 테스트하여 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를 설정하는 방법을 설명했습니다. 질문이나 추가 아이디어를 보내려면 아래 의견 양식을 사용하세요.