web-dev-qa-db-ja.com

HAProxyにバックエンドサーバーのDNSを検索させる

私はhaproxy 1.5.8を使用しています。これは、(パスに基づいて)一部のリクエストを、私たちが制御できないサードパーティにプロキシします。

バックエンドサーバーのIPは起動時に1回解決されるため、IPが変更されると壊れます。

そのための回避策がある場合? nginxでは、内部変数を宣言して、X秒間キャッシュすることができます。 HAProxyの同様のソリューションが見つかりませんでした。

14
Bastien974

HAProxy 1.6の最近のリリースでは、問題に対する解決策があります。これでリゾルバーを定義し、これらをバックエンドに関連付けることができます。その後、実行時にIP解決が行われます。

resolvers dns
  nameserver public-0  xx.xx.xx.xx:53
  hold valid 1s

frontend http
  bind *:8000
  default_backend site-backend

backend site-backend
  balance leastconn
  server site sub.example.com:80 resolvers dns check inter 1000

これについて議論しているStackOverflow

対応するドキュメントへのリンク

25
mana

残念ながら、これはまだ 作業中のようです

別のnginxプロキシの使用を検討しましたか?そのバックエンドのリクエストをnginxインスタンスに転送するには、DNS解決を行ってリクエストを転送しますか?アイデアではありませんが、トラフィックの少ない環境で機能する可能性があります。

1
David Hulick