서버 설정 · 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.listAPT를 업데이트하고 바니시를 설치합니다:
sudo apt-get updatesudo 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-rpafRPAF (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. 이 서버의 모든 도메인이 동일한 서버 이름을 사용할 것임을 유의하십시오.
그럼, 그게 전부입니다. 이제 아파치 앞에 리버스 프록시가 있습니다!
약간의 조정을 통해 캐시하거나 로드 밸런싱을 할 수 있습니다.
새 게시물을 받은 편지함에서 받기
스팸은 없습니다. 언제든지 구독 해지 가능합니다.