서버 설정 · 3 min read · Jan 01, 2026

아파치 앞에 바니시 배치하기 (우분투/데비안)

아파치 앞에 바니시 배치하기 (우분투/데비안)

버전 1.0, 2010-10-15
트위터에서 나를 팔로우하세요

바니시는 웹사이트 속도를 높이기 위해 사용할 수 있는 오픈 소스 “웹 가속기”입니다.

이미지나 자바스크립트와 같은 특정 정적 요소를 캐시할 수 있지만 로드 밸런싱이나 추가 보안과 같은 다른 용도로도 사용할 수 있습니다.

이 튜토리얼에서는 후자의 경우에 중점을 두겠습니다.
이 모드에서는 바니시가 불완전한 HTTP 요청이 아파치 웹 서버에 도달하는 것을 차단합니다.

이 튜토리얼은 우분투를 기반으로 하지만 데비안에서도 작동할 가능성이 높습니다.

우선, 아파치2가 실행 중이고 구성되어 있는지 확인하십시오.

바니시 설치하기

이는 우분투 저장소에 있기 때문에 꽤 쉽습니다. 그러나 더 최신 버전을 보장하기 위해 바니시 저장소를 사용하는 것이 좋습니다. 이를 추가하려면 다음을 실행하십시오:

sudo curl http://repo.varnish-cache.org/debian/GPG-key.txt | apt-key add -
sudo echo "deb http://repo.varnish-cache.org/debian/ $(lsb_release -s -c) varnish-2.1" >> /etc/apt/sources.list

APT를 업데이트하고 바니시를 설치합니다:

sudo apt-get update
sudo apt-get install varnish

좋습니다, 이제 바니시가 설치되었지만 여전히 구성해야 합니다.

바니시 설정 변경하기

먼저 기본 포트를 변경해야 합니다. /etc/default/varnish를 편집하십시오:

vim /etc/default/varnish

조금 아래로 스크롤하여 “ DAEMON_OPTS “로 시작하는 주석이 없는 줄을 찾습니다.

  • :6081*을 :80*으로 변경하여 기본 HTTP 포트에서 수신 대기하도록 합니다.
  • default.vcl을 다른 것으로 편집하십시오. 저는 “mysite.vcl”을 선택했습니다.

파일을 저장하십시오.

이전 파일에서 언급한 VCL 파일을 편집하십시오. 제 경우에는 /etc/varnish/mysite.vcl을 편집할 것입니다. 다음 내용을 붙여넣습니다:

## 포트 8000에서 로컬호스트에서 실행 중인 아파치로 요청 리디렉션
backend apache {
        .host = "127.0.0.1";
        .port = "8000";
}
## 가져오기
sub vcl_fetch {
        ## 존재하는 경우 X-Forwarded-For 헤더 제거.
        remove req.http.X-Forwarded-For;
        
        ## 클라이언트 IP 주소를 X-Forwarded-For로 삽입합니다. 이것은 사용자의 일반 IP 주소입니다.
        set    req.http.X-Forwarded-For = req.http.rlnclientipaddr;
        ## 추가 보안, "w00tw00t" 공격은 꽤 성가시므로 웹 서버에 도달하기 전에 차단합시다.
        if (req.url ~ "^/w00tw00t") {
                error 403 "허용되지 않음";
        }
        ## 콘텐츠 제공
        return(deliver);
}

## 제공
sub vcl_deliver {
        ## 바니시가 추가한 일부 헤더를 숨깁니다. 사람들이 우리가 바니시를 사용하고 있다는 것을 보지 않도록 하고 싶습니다.
              ## 아직 캐시하지 않으므로 사람들이 우리가 사용하고 있다고 알릴 필요가 없습니다.
        remove resp.http.X-Varnish;
        remove resp.http.Via;
        remove resp.http.Age;
        
        ## X-Powered-By 헤더를 숨기고 싶습니다. 아무도 우리가 PHP를 실행할 수 있고 버전 xyz를 가지고 있다는 것을 알 필요가 없습니다.
        remove resp.http.X-Powered-By;
}

파일을 저장하십시오. 좋습니다, 이제 바니시 부분은 끝났습니다. 아직 시작하지 마십시오.

아파치 설정 변경하기

좋습니다, 이제 아파치2가 로컬호스트에서 수신 대기하도록 해야 합니다. 이를 위해 몇 가지 작은 변경이 필요합니다.

vim /etc/apache2/ports.conf

다음을 변경하십시오:

NameVirtualHost *:80
Listen 80

다음으로:

NameVirtualHost *:8000
Listen 127.0.0.1:8000

아파치는 해당 포트에서 수신 대기할 것입니다. 가상 호스트도 편집해야 합니다. vhost(s)를 열고 다음을 교체하십시오:

다음으로:

지금까지 잘 진행되었습니다. 이제 사용자의 IP 주소가 올바르게 표시되도록 하기 위해 추가 아파치 모듈을 설치해야 합니다. 바니시는 기본적으로 아파치2와 통신하므로 방문자 IP로 127.0.0.1이 표시됩니다.

apt-get install libapache2-mod-rpaf

RPAF (Reverse Proxy Add Forward) 모듈은 127.0.0.1의 IP가 바니시가 설정한 X-Forwarded-For의 IP로 대체되도록 합니다.

데몬 재시작

아파치를 재시작하십시오:

/etc/init.d/apache2 restart

다음 명령을 실행하여 올바른 IP/포트에 바인딩되었는지 확인하십시오:

netstat -lp | grep apache2

다음과 같은 결과가 나타나면:

tcp        0      0 localhost:8000          *:*                     LISTEN      4586/apache2

올바른 것입니다. 그렇지 않으면 실수를 한 것입니다. 좋습니다, 이제 바니시를 재시작하여 포트 80에서 수신 대기하도록 해야 합니다.

/etc/init.d/varnish restart

다시 다음 명령을 실행하여 확인합니다:

netstat -lp | grep varnish

결과는 다음과 같을 것입니다:

tcp        0      0 *:www                   *:*                     LISTEN      4498/varnishd  
tcp6       0      0 [::]:www                [::]:*                  LISTEN      4498/varnishd

(예, 바니시는 IPv6 주소에서도 수신 대기합니다.)

그래서.. 이제 바니시를 아파치2 앞에 배치했습니다. 사이트가 여전히 작동하는지 확인하기 위해 단순히 방문해 보십시오. 아무 일도 없었던 것처럼 사이트가 표시됩니다. 아파치를 종료하여 추가로 테스트할 수 있습니다. 그러면 바니시 오류 페이지가 표시됩니다.

보너스 기능

음, HTTP 서버 이름을 “아파치“에서 다른 것으로 변경하고 싶을 수 있습니다. 이는 /etc/varnish에 위치한 VCL 파일을 편집하여 수행할 수 있습니다. 다음과 같이:

sub vcl_fetch {

다음과 같이 추가하십시오:

## http.Server 헤더 제거
unset obj.http.Server;
## http.Server 헤더를 다른 것으로 변경
set obj.http.Server = "Incognito";

당연히 원하는 대로 보이게 만들 수 있습니다. 예를 들어 yourdomain.com. 이 서버의 모든 도메인이 동일한 서버 이름을 사용할 것임을 유의하십시오.

그럼, 그게 전부입니다. 이제 아파치 앞에 리버스 프록시가 있습니다!
약간의 조정을 통해 캐시하거나 로드 밸런싱을 할 수 있습니다.

Share: X/Twitter LinkedIn

새 게시물을 받은 편지함에서 받기

스팸은 없습니다. 언제든지 구독 해지 가능합니다.