Как назначить несколько пулов одному виртуальному серверу [VIP] в F5

Как назначить несколько пулов одному виртуальному серверу [VIP] в F5

У меня есть требование в 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

Если предположить, что вы переключаете пул по имени приложения (читай: полное доменное имя), то вы можете назвать свои пулы соответствующим образом, а 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]
  }
}

Связанный контент