我有幾個後端設置,每個在VCL中檢測到,然後正確的設置應用。這適用於一些網站,但有一些網站指向同一網站。多個虛擬主機通過清漆,不正確的後端如果服務
我已閱讀並應用此功能,但適用於某些功能,但不適用於其他功能。
Configure multiple sites with Varnish
例如我已經一些後端定義:
backend site4 {
.host = "127.0.0.1";
.port = "81";
}
backend site3 {
.host = "127.0.0.1";
.port = "81";
}
backend site2 {
.host = "127.0.0.1";
.port = "81";
}
backend site1 {
.host = "127.0.0.1";
.port = "81";
}
然後在vcl_recv
我設置主機和正確的後端:
if (req.http.host ~ "(?i)^(www.)?site1.co.uk")
{
set req.http.host = "www.site1.co.uk";
set req.backend = site1;
}
elsif (req.http.host ~ "(?i)^(www.)?site2.co.uk")
{
set req.http.host = "www.site2.co.uk";
set req.backend = site2;
}
elsif (req.http.host ~ "(?i)^(www.)?site3.com")
{
set req.http.host = "www.site3.com";
set req.backend = site3;
}
elsif (req.http.host ~ "(?i)^(www.)?site4.net")
{
set req.http.host = "www.site4.net";
set req.backend = site4;
}
www.site1.co.uk作品,就像www.site2.co.uk,但www.site3.com和www.site4.net都顯示www.site2.co.uk的內容 - 這就像忽略了我的後端和j使用同一個網站的某些網站。
主機設置正確,因爲如果我這樣做:
curl -I http://site3.com
使用vcl_fetch
set beresp.http.X-Host = req.http.host;
以下的時候,我可以看到主機被正確設定爲www.site3.com
任何想法的人?
請注意,是否有更簡短的方法來定義我的後端?
好點!謝謝 –