web-dev-qa-db-ja.com

HAProxy:応答ヘッダーによってトリガーされるセッションのスティッキ性は可能ですか?

F5の代替候補としてHAProxyを調査しています。 F5は、応答ヘッダー値に基づいてセッションを永続化できます。

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

次に、ヘッダー、クエリパラメータ、パスなどに同じセッションIDを含む後続のすべてのリクエストを、同じマシンにルーティングします。例:

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

これがHAProxyでも可能かどうか疑問に思っていますか?

5
zoli

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インストールではテストされていません。

3
zoli