
我在 F5 中有一個要求,我必須配置多個池,並且所有池將使用單一虛擬伺服器 [1 VIP] 來接收來自外界的流量。我試圖找出實現此目標所需的任何特定配置。截至目前,當我將預設池分配給虛擬伺服器時,我的 F5 配置正在工作,因為我必須使用 1 個 VIP 並在其上託管多個客戶端,所以我陷入了這一點。有人可以幫我嗎?
答案1
您將需要使用 iRules 才能在單一 VIP 上擁有多個池。查看相關文檔這裡
現在你要考慮的是如何選擇使用哪個池。您可以檢查主機或 URI 值,如下所示:
when HTTP_REQUEST {
if { [HTTP::uri] contains "blabla"} {
pool "Your pool name here"
}
}
如果您需要更多信息,請告訴我,我對 F5 iRules 非常熟悉;)
答案2
Dexirian 上面是正確的 - 但我認為根據您因多個客戶端而需要多個池的情況,這更正確地回答:
when HTTP_REQUEST {
switch -glob [string tolower [HTTP::uri]] {
"/123*" {
HTTP::uri "/"
pool pool_123
}
"/456*" {
HTTP::uri "/"
pool pool_456
}
"/789*" {
HTTP::uri "/"
pool pool_789
}
}
}
答案3
假設您透過應用程式名稱(讀取:fqdn)切換池,那麼您可以適當地命名您的池,並且 iRule 可以是通用的:
when HTTP_REQUEST {
if { [catch {pool [HTTP::host]}] } {
log local0. "error - pool [HTTP::host] does not exist"
# Set pool to default since HTTP::host did not match existing pool
pool [LB::server pool]
}
}