varnish 3 버전을 애용했는데, 지원이 중단되었다. 지금은 varnish 4와 6이 지원 대상이다. 그래서 아래와 같이 정보를 수정한다.
1. varnish release 정보 (https://varnish-cache.org/releases/index.html, 2019년 3월 7일 현재. varnish는 6개월 단위로 갱신된다 함.)
Release | Date | Notes | Download |
---|---|---|---|
Varnish Cache 6.1.1 | 2018-10-26 | Fresh | varnish-6.1.1.tgz |
Varnish Cache 6.0.3 | 2019-02-19 | Supported | varnish-6.0.3.tgz |
Varnish Cache 5.2.1 | 2017-11-14 | Retired | varnish-5.2.1.tgz |
Varnish Cache 5.1.3 | 2017-08-02 | Retired | varnish-5.1.3.tgz |
Varnish Cache 5.0.0 | 2016-09-15 | Retired | varnish-5.0.0.tgz |
Varnish Cache 4.1.11 | 2019-02-11 | Supported | varnish-4.1.11.tgz |
Varnish Cache 4.0.5 | 2017-08-02 | End Of Life | varnish-4.0.5.tgz |
Varnish Cache 3.0.7 | 2015-03-23 | End Of Life | varnish-3.0.7.tgz |
4.1.11 버전과 6.0.3 버전은 지원이 된다 하니 4.1 버전으로.
2. 사전에 설치해야 할 패키지 pygpgme, yum-utils ( 해 보니 이미 설치되어 있음)
아래 명령어를 통해서 필요 패키지를 설치한다. 보통은 이미 설치가 되어 있더라.
yum install pygpgme yum-utils |
3. varnish 4.1 설치 ( https://community.centminmod.com/threads/varnish-repo-failed.12768/ )
yum에 repository 설정을 해야 하니 /etc/yum.repos.d/varnish-4.1.repo 생성 후 아래를 복사
[varnishcache_varnish41] name=varnishcache_varnish41 baseurl=https://packagecloud.io/varnishcache/varnish41/el/7/$basearch repo_gpgcheck=1 gpgcheck=0 enabled=1 gpgkey=https://packagecloud.io/varnishcache/varnish41/gpgkey sslverify=1 sslcacert=/etc/pki/tls/certs/ca-bundle.crt metadata_expire=300 priority=2 [varnishcache_varnish41-source] name=varnishcache_varnish41-source baseurl=https://packagecloud.io/varnishcache/varnish41/el/7/SRPMS repo_gpgcheck=1 gpgcheck=0 enabled=1 gpgkey=https://packagecloud.io/varnishcache/varnish41/gpgkey sslverify=1 sslcacert=/etc/pki/tls/certs/ca-bundle.crt metadata_expire=300 |
그리고 혹시나 남아 있을지 모를 캐시를 아래 명령어로 삭제한다.
yum makecache -y --disablerepo='*' --enablerepo='varnishcache_varnish41' |
이제 아래 명령어로 varnish를 설치한다. (혹시라도 위 4.1 버전이 맞는지 yum list varnish 를 통해 확인하기 바란다.)
yum install varnish |
4. varnish 설정하기 (https://syslint.com/blog/tutorial/how-to-install-varnish-on-centos-7-or-rhel-7/)
설정은 정말 간단하다. 그런데 예전 문서와 좀 다른게 생겼다.
- /etc/varnish 폴더
: varnish.params 에서 포트를 아래와 같이 수정
VARNISH_LISTEN_PORT=80 |
캐시 기본 설정이 256M인데 행여 용량 크게 하겠다면 1G나 2G로 바꿔도 된다.
: defaul.vcl : 수정할게 없음! 3 버전과 차이는 바로 이것 인듯. 이 파일을 수정하지 않아도 되더라.
- /etc/httpd/conf 폴더
: httpd.conf 에서 해당 줄에 가서 아래와 같이 수정
Listen 127.0.0.1:8080 NameVirtualHost 127.0.0.1:8080 <VirtualHost 127.0.0.1:8080>
|
5. 실행하기
CentOS 7 에서는 아래와 같이.
systemctl restart httpd.service systemctl restart varnish.service |
이때 "Error: Cannot open socket: :80: Address already in use" 메시지가 나오는 경우가 있다. -> 해결 방법 : 아래 netstat 명령어를 통해서 80에 varnish가 8080에 httpd가 정상 동작하는지 확인한 후 포트가 엉켜 있으면 재시작시켜주면 된다. 순서는 항상 httpd 먼저.
6. 동작 여부 확인하기
아래 명령어를 입력해 보라.
netstat -tunlp | grep :80 |
이때 아래와 같이 나오면 정상 동작이다.
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 15758/varnishd tcp 0 0 127.0.0.1:8080 0.0.0.0:* LISTEN 15730/httpd |
7. 부팅 시 자동 시작하게 등록
예전에는 아래 명령어였다.
chkconfig --level 345 varnish on |
CentOS 7에서는 아래와 같이.
systemctl enable varnish.service |