Apache-2.2

我怎樣才能讓 Apache 和 Nginx 都在 Varnish 後面?

  • June 14, 2015

我有一個設置,我讓 Varnish 在埠 8080 上的 Apache 後面的埠 80 上偵聽,而我打算在 8081 上使用 Nginx。我的 vps 控制面板僅支持 Apache,但我想測試我在 Nginx 上的 VPS 上託管的站點之一,並且由於 Varnish 已經在 80 上,我不能在同一個埠上安裝 Nginx。

我不想完全擺脫 Apache,因為我仍然需要它來訪問我的 vps 控制面板,Sentora準確地說是 Apache 在 8080 上的位置。在這裡提出的問題中,OP 希望在不同的伺服器上擁有兩個不同的域IP只在Apache上,所以它並沒有真正的幫助。

另外,我在某處閱讀了有關server.port在我的 vcl 中使用該指令的資訊,但我不確定如何去做。這是我的一部分的default.vcl樣子:

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

PS:我還沒有安裝Nginx。

在這裡,您想在 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;
   }
}

有關更多範例,請參閱高級後端配置Varnish 配置語言文件中也有很多範例。

引用自:https://serverfault.com/questions/698838