Paksa HAProxy untuk mencari DNS untuk server backend

13

Saya memiliki haproxy 1.5.8, proksi beberapa permintaan (berdasarkan path) ke pihak ketiga yang tidak dapat kami kendalikan.

Karena IP server backend diselesaikan sekali saat startup, IP akan rusak jika IP berubah.

Jika ada solusi untuk itu? Dalam nginx dimungkinkan untuk mendeklarasikan variabel internal dan menyimpannya dalam cache selama X detik. Saya tidak menemukan solusi serupa untuk HAProxy.

Bastien974
sumber

Jawaban:

24

Dengan rilis terbaru HAProxy 1.6 ada solusi untuk masalah Anda. Anda sekarang dapat mendefinisikan resolver dan mengaitkan ini ke backend Anda. Resolusi IP kemudian akan dilakukan saat runtime.

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 mendiskusikan ini

Tautan ke dokumentasi yang sesuai

mana
sumber
hmmm ketika saya melakukan ini dan mulai menyegarkan halaman, saya akhirnya mendapatkan 503 dalam satu menit atau lebih
Paulius Dragunas
saya harus memiliki beberapa duplikat "server" baris discourse.haproxy.org/t/…
jamshid
1

Sayangnya, sepertinya ini masih dalam proses.

Sudahkah Anda mempertimbangkan untuk menggunakan proxy nginx terpisah? Sehingga Anda meneruskan permintaan untuk backend ke instance nginx, yang kemudian melakukan resolusi DNS dan meneruskan permintaan? Bukan ideak, tetapi dapat bekerja di lingkungan lalu lintas yang lebih rendah.

David Hulick
sumber
Selalu ada solusi itu, tetapi berharap menemukan solusi yang akan membuatnya tetap sederhana.
Bastien974