2015-11-19 15 views
1

Я довольно новичок в написании симуляций F5, так голый со мной. Моя текущая ярость;f5 bigip irule - http перенаправление и изменение пула

when HTTP_REQUEST { 
if {[HTTP::uri] starts_with "/xxxx"} { 
HTTP::redirect https://example.com/yyyy 
} 
if {[HTTP::uri] starts_with "/zzzz"} { 
HTTP::redirect https://example.com/bbbb 
} 
} 

Это работает так, как мы ожидаем. У нас есть виртуальный сервер на https://example.com, у которого есть пул (называемый say poolA, с узлом nodeA).

Что мы хотим сделать, так это изменить существующую иерархию, чтобы она не только перенаправляла, но и меняла пул. Я попробовал следующее:

when HTTP_REQUEST { 
    if {[HTTP::uri] starts_with "/xxxx"} { 
    HTTP::redirect https://example.com/yyyy 
    poolB 
} 
if {[HTTP::uri] starts_with "/zzzz"} { 
HTTP::redirect https://example.com/bbbb 
poolB 
} 
} 

NodeB в poolB есть веб-сервер на нем и прослушивает правильный порт и имеет веб-сайт, который соответствует направление URL.

Если я перехожу в https://example.com/xxxx в Chrome, я получаю следующее сообщение об ошибке;

ошибка слишком много переадресаций

ответ

1

Я бы с переключателем в этом случае. Если вы перенаправляете, вам не нужно устанавливать пул, потому что этот запрос не будет передан члену пула.

when HTTP_REQUEST { 
    switch -glob [string tolower [HTTP::uri]] { 
    "/xxxx*" { HTTP::redirect https://example.com/yyyy } 
    "/zzzz*" { HTTP::redirect https://example.com/bbbb } 
    "/yyyy*" - 
    "/bbbb*" { pool poolB } 
    } 
} 

У нас есть много отличных учебных пособий на DevCentral. Вот first article в серии из десяти частей на iRules под названием The101.

 Смежные вопросы

  • Нет связанных вопросов^_^