2016-12-21 7 views
0

현재 성장중인 바니시 구성 파일에 일부 통합을 추가하려고합니다.바니시 VTC 포함 - 백엔드 다시 정의 {} -

나는 그것을 초기화 할 수 있었고, 나는 varnishtestvtc 형식의 기초를 가지고 있다고 생각한다.

varnish.vcl을로드해야합니다. 내부에는 몇 개의 백엔드가 있습니다. 일부 내부 호스트에 대해 .host을 가지고 있으며 CI 시스템에서 확인할 수없는 호스트입니다.

어떻게 백엔드를 무시할 수 있습니까?

내 생각은 기본적으로 같다 : (api01는 내부 DNS와 varnish.vcl에 정의되어 있습니다.)

varnish v1 -vcl { 
    # …some vcl to define backends… # 
    include "${pwd}/varnish.vcl"; 
    backend api01 { .host = "127.0.0.1"; } 
} 
varnish v1 -start 

실패 - Backend host '"api_loadbalancer"' could not be resolved to an IP address

이 있지만 (위의 백엔드를 정의하기 위해 계속하지 않습니다 127.0.0.1 포함) - 포함 전에 백엔드를 수행하면 재정의 오류가 발생합니다.

백엔드를 조롱하는 올바른 방법은 무엇입니까?

답변

0

우리는 VCL 코드를 여러 파일로 분리 한 다음 모든 파일을 "main.vcl"에 "포함"하여 Varnish를 시작합니다. 이 수

main.vcl 
-- backends.vcl 
-- directors.vcl 
-- mainLogic.vcl 

만 테스트 케이스에 VCL-파일의 일부를 포함하고 백엔드를 지정할 수 있습니다 할 : 다음은 간단한 예 구조입니다. 예를 들어, 당신은 진정한 백엔드 사용하려는 경우 :

varnish v1 -vcl { 
    backend api01 { .host = "127.0.0.1"; } 
    include "${pwd}/mainLogic.vcl"; 
} 

을하거나 백엔드 (우리가하는 일)을 조롱하려는 경우 :

varnish v1 -vcl { 
    backend api01 { 
    .host = "${s1_addr}"; 
    .port = "${s1_port}"; 
    } 
    include "${pwd}/mainLogic.vcl"; 
} 
+0

는 답변을 들으 거의 같은 생각을했다. –

+0

우리는 우리의 니스 테스트를 "메타 프로그램"합니다. 내가 말하고자하는 것은 우리가 JSON에서 루비 코드와 설정을 가지고 있고 루비 코드가 백엔드와 디렉터를위한 VCL 코드를 생성 할 수 있다는 것입니다. – Ronald

+0

그 소리가 멋지 네요! - 나와 공유 할 수 있는게있어? –