Rocky Linux 8에서 Nginx용 Varnish 7을 설치하는 방법
이 페이지에서
- 전제 조건
- 니스 7 설치
- 바니시 서비스 관리
- 니스 구성
- Varnish와 함께 작동하도록 Nginx 구성\n
- 니스 캐시 확인\n
- 결론
Varnish 캐시는 콘텐츠를 메모리에 캐싱하여 웹 사이트 속도를 높이는 데 사용되는 무료 오픈 소스 캐시 가속기입니다. 매우 빠르고 페이지 로드 시간을 줄여 SERP에 도움이 되고 사용자 경험을 향상시킵니다. Facebook, Twitter 및 Wikipedia를 비롯한 많은 조직에서 사용합니다. Varnish는 Nginx와 클라이언트로부터 요청을 받고 이를 백엔드로 전달하는 클라이언트 사이에 위치합니다. Varnish가 메모리에서 콘텐츠를 제공하기 때문에 웹 서버 성능이 향상됩니다.
이 튜토리얼에서는 Rocky Linux 8에서 Nginx 앞에 Varnish 7을 설치하는 방법을 보여줍니다.
전제 조건
- Rocky Linux 8을 실행하는 서버.\n
- 루트 암호는 서버에서 구성됩니다.\n
바니시 7 설치
시작하기 전에 시스템에서 기존 광택제 모듈을 비활성화해야 합니다. 다음 명령을 실행하여 비활성화할 수 있습니다.
dnf module disable varnish
다음 출력이 표시되어야 합니다.
============================================================================================================================================== Package Architecture Version Repository Size ============================================================================================================================================== Disabling modules: varnish Transaction Summary ============================================================================================================================================== Is this ok [y/N]: y Complete!
다음으로 다음 명령을 사용하여 EPEL 리포지토리를 설치합니다.
dnf install epel-release -y
다음으로 다음 명령을 사용하여 Varnish Cache 7 리포지토리를 시스템에 추가합니다.
curl -s https://packagecloud.io/install/repositories/varnishcache/varnish70/script.rpm.sh | bash
저장소가 추가되면 다음 명령을 사용하여 Varnish 7을 설치합니다.
dnf install varnish -y
성공적으로 설치한 후 다음 명령을 사용하여 Varnish에 대한 정보를 확인합니다.
rpm -qi varnish
다음 출력이 표시되어야 합니다.
Name : varnish Version : 7.0.2 Release : 1.el8 Architecture: x86_64 Install Date: Sunday 13 February 2022 06:24:35 AM UTC Group : System Environment/Daemons Size : 8907085 License : BSD Signature : (none) Source RPM : varnish-7.0.2-1.el8.src.rpm Build Date : Wednesday 12 January 2022 02:25:34 PM UTC Build Host : 7fc509e75620 Relocations : (not relocatable) URL : https://www.varnish-cache.org/ Summary : High-performance HTTP accelerator Description : This is Varnish Cache, a high-performance HTTP accelerator.
바니시 서비스 관리
Varnish를 설치한 후 Varnish 서비스를 시작하고 다음 명령을 사용하여 시스템 재부팅 시 시작되도록 활성화합니다.
systemctl start varnish
systemctl enable varnish
다음 명령을 사용하여 바니시의 상태를 확인할 수 있습니다.
systemctl status varnish
다음과 같은 결과가 표시됩니다.
? varnish.service - Varnish Cache, a high-performance HTTP accelerator Loaded: loaded (/usr/lib/systemd/system/varnish.service; disabled; vendor preset: disabled) Active: active (running) since Sun 2022-02-13 06:24:56 UTC; 6s ago Process: 2555 ExecStart=/usr/sbin/varnishd -a :6081 -a localhost:8443,PROXY -p feature=+http2 -f /etc/varnish/default.vcl -s malloc,256m (c> Main PID: 2556 (varnishd) Tasks: 217 Memory: 104.5M CGroup: /system.slice/varnish.service ??2556 /usr/sbin/varnishd -a :6081 -a localhost:8443,PROXY -p feature=+http2 -f /etc/varnish/default.vcl -s malloc,256m ??2567 /usr/sbin/varnishd -a :6081 -a localhost:8443,PROXY -p feature=+http2 -f /etc/varnish/default.vcl -s malloc,256m Feb 13 06:24:55 rockylinux systemd[1]: Starting Varnish Cache, a high-performance HTTP accelerator... Feb 13 06:24:55 rockylinux varnishd[2556]: Version: varnish-7.0.2 revision 9b5f68e19ca0ab60010641e305fd12822f18d42c Feb 13 06:24:55 rockylinux varnishd[2556]: Platform: Linux,4.18.0-348.12.2.el8_5.x86_64,x86_64,-junix,-smalloc,-sdefault,-hcritbit Feb 13 06:24:55 rockylinux varnishd[2556]: Child (2567) Started Feb 13 06:24:56 rockylinux varnishd[2556]: Child (2567) said Child starts Feb 13 06:24:56 rockylinux systemd[1]: Started Varnish Cache, a high-performance HTTP accelerator.
바니시 구성
기본적으로 Varnish는 포트 6081에서 수신 대기합니다. 여기에서 Varnish를 사용하여 들어오는 HTTP 연결을 수락합니다. 따라서 포트 80에서 수신 대기하도록 Varnish를 구성해야 합니다. /usr/lib/systemd/system/varnish.service 파일을 편집하여 수행할 수 있습니다.
nano /usr/lib/systemd/system/varnish.service
아래와 같이 포트 6081을 80으로 변경합니다.
ExecStart=/usr/sbin/varnishd -a :80 -a localhost:8443,PROXY -p feature=+http2 -f /etc/varnish/default.vcl -s malloc,2g
파일을 저장하고 닫은 다음 systemd 데몬을 다시 로드하여 변경 사항을 적용합니다.
systemctl daemon-reload
그런 다음 Varnish 서비스를 다시 시작하여 변경 사항을 적용합니다.
systemctl restart varnish
다음으로 다음 명령을 사용하여 Varnish 수신 포트를 확인합니다.
ss -antpl | grep varnish
다음 출력에 Varnish 수신 포트가 표시되어야 합니다.
LISTEN 0 10 127.0.0.1:46093 0.0.0.0:* users:(("varnishd",pid=2819,fd=13)) LISTEN 0 128 0.0.0.0:80 0.0.0.0:* users:(("cache-main",pid=2830,fd=6),("varnishd",pid=2819,fd=6)) LISTEN 0 128 127.0.0.1:8443 0.0.0.0:* users:(("cache-main",pid=2830,fd=9),("varnishd",pid=2819,fd=9)) LISTEN 0 10 [::1]:33963 [::]:* users:(("varnishd",pid=2819,fd=12)) LISTEN 0 128 [::]:80 [::]:* users:(("cache-main",pid=2830,fd=7),("varnishd",pid=2819,fd=7)) LISTEN 0 128 [::1]:8443 [::]:* users:(("cache-main",pid=2830,fd=8),("varnishd",pid=2819,fd=8))
Varnish와 함께 작동하도록 Nginx 구성
이 섹션에서는 Nginx를 설치하고 Varnish와 함께 작동하도록 구성합니다. 먼저 다음 명령을 사용하여 Nginx 패키지를 설치합니다.
dnf install nginx -y
Nginx를 설치한 후 Nginx 구성 파일을 편집하고 Nginx 기본 수신 포트를 80에서 8080으로 변경해야 합니다.
다음 명령을 사용하여 Nginx 기본 구성 파일을 편집합니다.
nano /etc/nginx/nginx.conf
다음 줄을 찾으십시오.
listen 80 default_server; listen [::]:80 default_server;
그리고 다음 줄로 교체했습니다.
listen 8080 default_server; listen [::]:8080 default_server;
완료되면 파일을 저장하고 닫은 다음 Nginx 서비스를 시작하여 변경 사항을 적용합니다.
systemctl start nginx
다음 명령을 사용하여 Nginx 상태를 확인할 수도 있습니다.
systemctl status nginx
다음과 같은 결과가 표시됩니다.
? nginx.service - The nginx HTTP and reverse proxy server Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; vendor preset: disabled) Active: active (running) since Sun 2022-02-13 06:29:02 UTC; 8s ago Process: 5627 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS) Process: 5626 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS) Process: 5624 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (code=exited, status=0/SUCCESS) Main PID: 5629 (nginx) Tasks: 2 (limit: 11412) Memory: 6.7M CGroup: /system.slice/nginx.service ??5629 nginx: master process /usr/sbin/nginx ??5630 nginx: worker process Feb 13 06:29:02 rockylinux systemd[1]: Starting The nginx HTTP and reverse proxy server... Feb 13 06:29:02 rockylinux nginx[5626]: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok Feb 13 06:29:02 rockylinux nginx[5626]: nginx: configuration file /etc/nginx/nginx.conf test is successful Feb 13 06:29:02 rockylinux systemd[1]: nginx.service: Failed to parse PID from file /run/nginx.pid: Invalid argument Feb 13 06:29:02 rockylinux systemd[1]: Started The nginx HTTP and reverse proxy server.
바니시 캐시 확인
이 시점에서 Nginx 웹 서버와 함께 Varnish가 설치되고 구성됩니다. 이제 Varnish 캐시를 테스트할 시간입니다.
다음 명령을 실행하여 Varnish 캐시를 확인합니다.
curl -I http://your-server-ip
모든 것이 정상이면 다음과 같은 결과가 표시됩니다.
HTTP/1.1 200 OK Server: nginx/1.14.1 Date: Sun, 13 Feb 2022 06:30:06 GMT Content-Type: text/html Content-Length: 3429 Last-Modified: Thu, 10 Jun 2021 09:09:03 GMT ETag: "60c1d6af-d65" X-Varnish: 2 Age: 0 Via: 1.1 varnish (Varnish/7.0) Accept-Ranges: bytes Connection: keep-alive
결론
축하합니다! Rocky Linux 8에서 Nginx와 함께 Varnish를 성공적으로 설치했습니다. 이제 프로덕션 환경에서 Varnish를 구현하여 웹 사이트 성능을 높일 수 있습니다. 궁금한 점이 있으면 언제든지 문의해 주세요.