どうも、Terraform を Teraterm に空目した小ネタのおばちゃまよ。(@inokara


はじめに

HA Proxy の timeout なんちゃら色々と有り過ぎてわけわかんなくなっているのでとりあえず整理してみた。尚、タイムアウトの等の数字は特に指定しない場合には ms となる点に注意。


timeout について

以下はパラメータと説明。

パラメータ 内容 設定可能なディレクティブ
timeout connect xxxx HA Proxy からバックエンドサーバへの接続試行を待機する時間 backend
timeout client xxxx クライアントとの HA Proxy の接続タイムアウト時間 frontend
timeout server xxxx HA Proxy からバックエンドサーバーへの接続タイムアウト時間 backend

以下のように絵にしたものがあれば判りやすいのにと思うこの頃。

ha-proxy-timeout-http-keep-alive_01

上記のようなイメージ。

timeout なんちゃらは他にもパラメータがあるので余裕があったら全部把握したい。



http-keep-alive について

ついでに http-keep-alive 周りもタイムアウトが設定出来るのでこちらも合わせて調べた。

  • HAProxy はデフォルトで永続的な接続に関してはキープアライブモードで動作する
  • 各接続において各リクエストとレスポンスを処理し応答の終わりと新しい要求の開始との間に接続アイドルを残す
  • options http-keep-alive はこのキープアライブモードをクライアントとサーバー(HA Proxy)の間で有効にするオプション

以下は関連パラメータと説明。

パラメータ 内容 設定可能なディレクティブ メモ
options http-keep-alive Keep Alive を有効にする default / frontend /backend / listen
timeout http-request xxxx HTTP リクエストの完了を待機する時間 fdefault / frontend /backend / listen Apache の Timeout をイメージすると良いかも
timeout http-keep-alive xxxx HTTP リクエスト完了後、新しい HTTP リクエストを待機する時間 default / frontend /backend / listen Apache の KeepAlive Timeout をイメージすると良いかも

誰か作ってくれんかなって思いながら自分で作った。

ha-proxy-timeout-http-keep-alive_02

こんな感じで。



timeout と http-request を設定する上での注意点

  • timeout http-request < timeout client とならないように設定する
  • timeout http-request が設定されていない場合には timeout client の値が利用される


はあ…(ため息

  • 小ネタ、ドキュメント読めばええやんネタが続いてすいません

元記事は、こちら