웹사이트 검색

Rocky Linux 8에서 Nginx용 Varnish 7을 설치하는 방법


이 페이지에서

  1. 전제 조건
  2. 니스 7 설치
  3. 바니시 서비스 관리
  4. 니스 구성
  5. Varnish와 함께 작동하도록 Nginx 구성\n
  6. 니스 캐시 확인\n
  7. 결론

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를 구현하여 웹 사이트 성능을 높일 수 있습니다. 궁금한 점이 있으면 언제든지 문의해 주세요.