Назад | Перейти на главную страницу

HAProxy: возможно ли прикрепление сеанса, вызванное заголовком ответа?

Я исследую HAProxy как возможную замену F5. F5 может поддерживать сеанс на основе значения заголовка ответа:

when HTTP_RESPONSE {
  set session [HTTP::header X-Session]
  if {$session ne ""} {
    persist add uie $session
  }
}

а затем направить все последующие запросы, которые содержат тот же идентификатор сеанса в заголовке, параметре запроса, пути и т. д., на тот же компьютер, например:

when HTTP_REQUEST {
  set session [findstr [HTTP::path] "/session/" 9 /]
  if {$session} {
    persist uie $session
  }
}

Интересно, возможно ли это вообще с HAProxy?

HAProxy 1.5 (текущая разрабатываемая версия) реализует липкость при ответе с помощью stick store-response команда. Команда будет такой:

stick store-response hdr(X-Session)
stick on url-param(session) # the session ID is in a query parameter
# if the session ID is in the path, like /session/{session ID}/doSomething
# in this case, the X-Session header value probably has to be the format "/session/{session ID}"
# and the session ID length has to be fixed
stick on path {session ID + path prefix length, including slashes} if path_beg "/session"

Отказ от ответственности: приведенное выше основано на чтении документации, а не на проверке на реальной установке HAProxy.