Varnish 뒤에 Apache와 Nginx를 모두 포함하려면 어떻게 해야 합니까?

Varnish 뒤에 Apache와 Nginx를 모두 포함하려면 어떻게 해야 합니까?

8081에서 Nginx를 사용하려고 하는 동안 포트 8080에서 Apache 뒤의 포트 80에서 Varnish를 수신하는 설정이 있습니다. 내 vps의 제어판은 Apache만 지원하지만 Nginx의 VPS에서 호스팅한 사이트 중 하나를 테스트하고 싶습니다. , Varnish가 이미 80에 있으므로 동일한 포트에 Nginx를 사용할 수 없습니다.

내 vps 제어판에 액세스하려면 Apache가 여전히 필요하기 때문에 Apache를 완전히 제거하고 싶지 않습니다.센토라Apache가 8080의 어느 위치에 있는지 정확하게 말하면. 질문에여기, OP는 Apache에서만 서로 다른 IP에 두 개의 서로 다른 도메인을 갖고 싶었으므로 실제로 도움이 되지 않습니다.

또한 내 VCL에서 지시문을 사용하는 방법에 대해 어딘가에서 읽었지만 server.port어떻게 해야 할지 잘 모르겠습니다. 내 모습은 다음과 같습니다 default.vcl.

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

추신: 아직 Nginx를 설치하지 않았습니다.

답변1

여기서는 Varnish에 추가 백엔드를 설정하고 여기에 일부 요청을 라우팅하려고 합니다.

먼저 Nginx에 대한 새 백엔드를 추가합니다.

backend nginx {
    .host = "127.0.0.1";
    .port = "8081";
}

그런 다음 일부 요청을 라우팅할 수 있습니다. 이는 일반적으로 vcl_recv서브루틴에서 수행됩니다. 예를 들어 Sentora가 도메인을 통해 액세스되는 경우 sentora.example.org:

sub vcl_recv {
    if (req.http.host ~ "(?i)^sentora.example.org$") {
        # Route requests to sentora.example.org to the old Apache backend.
        set req.backend = default;
    } else {
        # Everything else to nginx.
        set req.backend = nginx;
    }
}

보다고급 백엔드 구성더 많은 예를 보려면. 에도 예시가 많이 나와있어요광택 구성 언어선적 서류 비치.

관련 정보