웹사이트 검색

Ubuntu 18.04 LTS에서 Varnish HTTP 캐시로 Apache 속도를 높이는 방법


Varnish는 HTTP 캐싱에 중점을 둔 프록시 서버입니다. HTTP 가속기로 설계되었으며 웹 서버(Apache 또는 Nginx)의 리버스 프록시 역할을 할 수 있습니다. Varnish는 Wikipedia, The Guardian 및 The New York Times를 포함하여 유명하고 트래픽이 많은 웹 사이트에 사용되었습니다.

이 자습서에서는 Varnish HTTP 가속기를 Apache 웹 서버의 역방향 프록시로 설치하고 구성하는 방법을 보여줍니다. 실제 웹 서버 Apache는 비표준 HTTP 포트(포트 8080에서 실행)에서 실행됩니다. 그리고 Varnish는 HTTP 포트 80에서 리버스 프록시로 실행됩니다. 이 가이드에서는 Ubuntu 18.04 LTS 서버를 사용합니다.

우리가 할 일

  1. Apache 웹 서버 설치
  2. Apache 기본 포트 변경
  3. 니스 설치
  4. 니스 구성
  5. 설정 테스트

전제 조건

  • 우분투 18.04 LTS
  • 루트 권한

1단계 - Apache 웹 서버 설치

시작하려면 Apache 웹 서버를 설치하십시오. 기본적으로 Ubuntu 저장소에서 사용할 수 있습니다.

Ubuntu 저장소를 업데이트한 다음 apt 명령어를 사용하여 Apache를 설치합니다.

apt update
apt install -y apache2

설치가 완료되면 Apache 서비스를 시작하고 다음 systemctl 명령을 사용하여 시스템 부팅 시 자동으로 실행되도록 활성화합니다.

systemctl start apache2
systemctl enable apache2

Apache 웹 서버가 설치되었습니다.

다음으로 모든 사람이 웹 서버에 액세스할 수 있도록 하려면 방화벽 규칙에서 HTTP 및 HTTPS를 허용해야 합니다. 기본적으로 Ubuntu는 UFW라는 방화벽 패키지와 함께 제공됩니다.

다음 UFW 명령을 사용하여 새 SSH, HTTP 및 HTTPS 포트를 엽니다.

ufw allow ssh
ufw allow http
ufw allow https

이제 방화벽 서비스를 시작하고 시스템 부팅 시 자동으로 시작되도록 활성화하십시오.

ufw enable

y를 입력하고 Enter 키를 눌러 확인합니다.

HTTP, HTTPS, SSH용 새 포트가 열렸으며 네트워크 외부에서 액세스할 수 있습니다.

Apache 웹 서버를 테스트하려면 netstat 명령을 사용하여 Apache가 포트 80에서 실행 중인지 확인할 수 있습니다.

netstat -plntu

또는 다음 컬 명령을 사용할 수 있습니다.

curl -I hakase-labs.co

아래와 같은 결과를 얻어야 합니다.

2단계 - Apache 기본 포트 변경

이 튜토리얼에서는 Apache를 백엔드 서버로 사용하며 표준 HTTP 포트 80에서 실행되지 않습니다. Apache 웹 서버는 백엔드로 포트 8080에서 실행되며 표준 HTTP 포트 80은 Varnish에서 사용됩니다. .

기본 apache 포트를 변경하려면 apache 구성 ports.conf와 sites-available 디렉토리 아래의 모든 가상 호스트 구성을 편집해야 합니다.

Apache 구성 디렉터리로 이동합니다.

cd /etc/apache2

Apache 구성 ports.conf 및 sites-available 디렉터리 아래의 모든 가상 호스트 파일에서 포트 80을 8080으로 바꿉니다. 다음 sed 명령을 실행하여 이를 수행할 수 있습니다.

sed -i -e 's/80/8080/g' ports.conf
sed -i -e 's/80/8080/g' sites-available/*

다음으로 Apache 구성을 테스트하고 오류가 없는지 확인한 다음 Apache 서비스를 다시 시작하십시오.

apachectl configtest
systemctl restart apache2

이제 Apache는 HTTP 포트 8080에서 실행 중입니다. 아래와 같이 netstat 명령을 사용하여 확인하십시오.

netstat -plntu

아래와 같은 결과가 나오는지 확인합니다.

따라서 Apache 웹 서버가 포트 8080에서 실행되고 있음을 알 수 있습니다.

3단계 - Varnish HTTP 가속기 설치

이 단계에서는 Ubuntu 저장소에서 Varnish를 설치합니다. 이 가이드에서는 Varnish 5.2를 사용합니다.

다음 apt 명령을 사용하여 바니시를 설치합니다.

apt install -y varnish

설치가 완료되면 Varnish를 시작하고 시스템 부팅 시 자동으로 시작되도록 활성화합니다.

systemctl start varnish
systemctl enable varnish

Varnish는 Ubuntu 18.04 시스템에 설치되었습니다.

기본적으로 공용 주소의 경우 포트 6081, localhost 주소의 경우 포트 6082에서 실행됩니다. 아래 netstat 명령을 사용하여 확인하십시오.

netstat -plntu

그리고 기본 바니시 포트를 얻게 됩니다.

4단계 - Varnish를 Apache용 리버스 프록시로 구성

이 단계에서는 Apache 웹 서버 전면에 니스를 구성합니다. Varnish는 http 포트 80에서 실행되며 클라이언트의 모든 요청은 포트 8080에서 실행되는 Apache 웹 서버로 전송되기 전에 처리됩니다.

- 백엔드 구성

바니시 구성 디렉토리로 이동하여 기본 파일인 default.vcl을 백업합니다.

cd /etc/varnish/
cp default.vcl default.vcl.aseli

vim 편집기를 사용하여 바니시 구성 default.vcl을 편집합니다.

vim default.vcl

16행에서 백엔드 구성을 정의합니다. 설정의 백엔드는 Apache이고 포트 8080에서 실행됩니다. 따라서 Apache 설정의 광택 구성은 다음과 같아야 합니다.

backend default {
    .host = "127.0.0.1";
    .port = "8080";
}

저장 및 종료.

- 포트 80에서 바니시 실행

다음으로 기본 바니시 포트를 변경해야 합니다. varnish의 기본 포트는 6081 및 6082이며 포트를 HTTP 포트 80(공용 주소 전용)으로 변경해야 합니다.

/etc/default 디렉토리에서 광택 매개변수 구성을 편집합니다.

cd /etc/default/
vim varnish

DAEMON_OPTS 줄을 편집하고 아래와 같이 표준 HTTP 포트 80을 사용하여 공용 주소의 기본 포트 6081을 변경합니다.

DAEMON_OPTS="-a :80 \
             -T localhost:6082 \
             -f /etc/varnish/default.vcl \
             -S /etc/varnish/secret \
             -s malloc,256m"

저장 및 종료.

다음으로 바니시 서비스 파일인 varnish.service를 편집해야 합니다. /lib/systemd/system 디렉터리로 이동하고 vim을 사용하여 서비스 파일을 편집합니다.

cd /lib/systemd/system/
vim varnish.service

ExecStart 줄에서 varnish start 명령을 아래와 같이 변경합니다.

ExecStart=/usr/sbin/varnishd -j unix,user=vcache -F -a :80 -T localhost:6082 -f /etc/varnish/default.vcl -S /etc/varnish/secret -s malloc,256m

저장 및 종료.

systemd 서비스 구성을 다시 로드한 다음 varnish를 다시 시작합니다.

systemctl daemon-reload
systemctl restart varnish

이제 광택을 확인하고 HTTP 포트 80에서 실행 중인지 확인하십시오.

netstat -plntu

따라서 Varnish는 이제 포트 8080에 있는 Apache 웹 서버의 프런트 엔드로 HTTP 포트 80에서 실행됩니다.

5단계 - 테스트

curl 명령을 사용하여 테스트합니다.

curl -I hakase-labs.co

아래와 같이 HTTP 헤더를 가져왔는지 확인합니다.

웹 브라우저에서 확인하면 내 테스트 서버의 URL은 http://hakase-labs.co/입니다. 여기에서 서버 URL을 선택하십시오.

그리고 우리는 여전히 Apache 콘텐츠를 얻습니다.

varnishncsa 명령을 사용하여 광택 로그를 확인합니다.

varnishncsa

그리고 우리는 Apache 액세스 로그에서 로그를 얻습니다.

Apache 웹 서버에 대한 Varnish 설치 및 구성이 완료되었습니다.

참조

  • 니스 캐시
  • 아파치 HTTPD