2013-10-06 2 views
0

내가 1 서버 2 개 IP 주소가 있습니다 eth0를 = 1.2.3.4 eth0를 0 = 5.6.7.8니스 캐시 : 1 개 서버, 2IPs,이 개 웹 사이트

/etc/hosts 파일

127.0.0.1 localhost 
1.2.3.4 domain1.com 
5.6.7.8 domain2.net 
... 
Listen 1.2.3.4:8080 
Listen 5.6.7.8:8080 
... 
<VirtualHost 1.2.3.4:8080> 
DocumentRoot /var/www/domain1.com/public_html 
... 
</VirtualHost> 
<VirtualHost 5.6.7.8:8080> 
DocumentRoot /var/www/domain2.net/public_html 
... 
</VirtualHost> 

지금까지 너무 좋아, 나는 내 웹 서버가 확인 작업을 할 수 있습니다 :이 서버에서

아파치는 다음과 같은 구성 (/etc/httpd/conf/httpd.conf 파일)을 실행합니다.

을/etc/SYSCONFIG/니스

NFILES=131072 
MEMLOCK=82000 
NPROCS="unlimited" 
RELOAD_VCL=1 
VARNISH_LISTEN_PORT=80 
DAEMON_OPTS="-a domain1.com:80 \ 
      -T domain1.com:6082 \ 
      -f /etc/varnish/default.vcl \ 
      -S /etc/varnish/secret \ 
      -s malloc,256m" 
DAEMON_OPTS="-a domain2.net:80 \ 
      -T domain2.net:6083 \ 
      -f /etc/varnish/default.vcl \ 
      -S /etc/varnish/secret \ 
      -s malloc,512m" 

/etc/varnish/default.vcl

backend domain1 { 
    .host = "1.2.3.4"; 
    .port = "8080"; 
} 
backend domain2 { 
    .host = "5.6.7.8"; 
    .port = "8080"; 
} 
sub vcl_recv { 
    if (req.http.host == "domain1.com") { 
     set req.http.host = "domain1.com"; 
     set req.backend = domain1; 
     return (lookup); 
    } 
    if (req.http.host == "domain2.net") { 
     set req.http.host = "domain2.net"; 
     set req.backend = domain2; 
     return (lookup); 
    } 
} 

하지만 다음 매개 변수를 다음 나는 광택 캐시 설치 한

, 웹 사이트 domain2.net에는 연결할 수 있지만 domain1.com에는 연결할 수 없습니다. 내 서버에서 수신 포트를 조회 할 때

, 나는 알 수 다음

[email protected]# netstat -an | more 
tcp  0  0 5.6.7.8:80    0.0.0.0:*     LISTEN 
tcp  0  0 5.6.7.8:8080   0.0.0.0:*     LISTEN 
tcp  0  0 1.2.3.4:8080   0.0.0.0:*     LISTEN 
tcp  0  0 5.6.7.8:6083   0.0.0.0:*     LISTEN 

사람이 왜 니스 모든 1.2.3.4/domain1.com 구성을 무시 알고 있나요? 어떻게 작동 시키는가?

미리 감사드립니다.

답변

3

/etc/sysconfig/varnish에서 변수 DAEMON_OPTS를 두 번 쓰면 두 번째 매개 변수 집합 만이 바니시 데몬으로 전달됩니다. 하지만 어쨌든 하나의 vcl 스크립트 만 사용하기 때문에 왜 2 개의 니스 데몬을 시작 하시겠습니까? 모두 IP를에

한 데몬이 작동합니다, 그래서 당신은 단순히 DAEMON_OPTS에 도메인 부분을 제거 할 수 있습니다 도료는 모든 인터페이스에서 수신됩니다

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

-T는 관리 인터페이스입니다. 대부분 로컬 호스트에서만 액세스 할 수 있습니다.

+0

와우! 그것은 일했다 :) 감사합니다 친구. – user2851508