Debian
Varnish - 一個站點的多個後端
Varnish 可以為一個站點配置多個後端嗎?例如,我有具有多個後端的高可用性站點。
例如,我有
www.goodies.com
一個在 php 5.6 上執行的站點。所以我有 3 個www-nodes
作為後端www-node5.6a
www-node5.6b
www-node5.6c
我在 Varnish 中配置了這樣的後端:
backend www-node5.6a { .host = "10.0.0.11"; .port = "80"; .connect_timeout = 6000s; .first_byte_timeout = 6000s; .between_bytes_timeout = 6000s; } backend www-node5.6b { .host = "10.0.0.12"; .port = "80"; .connect_timeout = 6000s; .first_byte_timeout = 6000s; .between_bytes_timeout = 6000s; } backend www-node5.6c { .host = "10.0.0.13"; .port = "80"; .connect_timeout = 6000s; .first_byte_timeout = 6000s; .between_bytes_timeout = 6000s; }
我的問題是,如何配置 Varnish 以便使用者將被隨機使用到此特定站點的任何後端?
如果您想要隨機分發您在配置文件中需要這樣的內容,您正在尋找什麼:
director cl1 random { { .backend = [Backend0]; .weight = 1; } { .backend = [Backend1]; .weight = 1; } }
更多關於 Varnish 後端如何工作的資訊可以在這裡找到。我從這個部落格中找到了上面的片段。您也可以根據 url 執行此操作,如此處所示。您還可以在此處閱讀有關配置 Varnish 以實現高可用性的更多資訊。
您應該考慮進行健康檢查,並在循環模式下設置和定義一個實際的導演。隨機就是隨機。從理論上講,訪問您網站的每個使用者都可以隨機發送到同一個後端,這與根據後端執行狀況和狀態平均分配內容一樣“隨機”。尋找另一個來源,他們有這些方面的東西:
import directors; backend [Backend0] { .host = "192.168.0.10"; .probe = { .url = "/"; .timeout = 1s; .interval = 5s; .window = 5; .threshold = 3; } } backend [Backend1] { .host = "192.168.0.10"; .probe = { .url = "/"; .timeout = 1s; .interval = 5s; .window = 5; .threshold = 3; } } sub vcl_init { new vdir = directors.round_robin(); vdir.add_backend([Backend0]); vdir.add_backend([Backend1]); }
根據需要對您的環境中有意義的內容進行更改。請閱讀所有連結和文件,並在嘗試任何操作之前備份您的舊配置。