Misalnya. header berisi: X-DEMO-HOST-VERSION: test
- bagaimana saya perlu mengatur konfigurasi haproxy untuk meneruskan ke backend tertentu? Bisakah ini dilakukan di backend atau di frontend?
Mengenai dokumentasinya saya sedikit bingung.
Misalnya. header berisi: X-DEMO-HOST-VERSION: test
- bagaimana saya perlu mengatur konfigurasi haproxy untuk meneruskan ke backend tertentu? Bisakah ini dilakukan di backend atau di frontend?
Mengenai dokumentasinya saya sedikit bingung.
Anda memerlukan nilai header pemeriksaan (hdr di haproxy) melalui ACL. Cobalah:
frontend header_front
bind *:80
mode http
option forwardfor if-none
acl demo_host_version hdr(X-DEMO-HOST-VERSION) -i test
use_backend test_backend if demo_host_version
default_backend prod_backend
backend test_backend
...
backend prod_backend
...
Tes untuk tajuk Anda:
acl demo_host_version hdr(X-DEMO-HOST-VERSION) -i test
use_backend test_backend if demo_host_version
Logikanya: IF
X-DEMO-HOST-VERSION=test
gunakan test_backend ELSE
gunakan prod_backend
UPD: Jika Anda memerlukan acl untuk jalur di URL (example.com/test/
):
acl demo_host_path path_beg /test/
use_backend test_backend if demo_host_path
Jika Anda perlu menggunakan dua ACL dalam pernyataan if, gunakanlah:
acl demo_host_version hdr(X-DEMO-HOST-VERSION) -i test
acl demo_host_path path_beg /test/
use_backend test_backend if demo_host_path demo_host_version
UPD untuk memeriksa URL:
Pemeriksaan subdomain. Jika Anda memiliki domain test.example.com
atau test.abc.com
, cobalah:
acl host_sub_domain hdr_beg(host) -i test
Untuk cek domain lengkap, misal test.example.com
, coba:
acl host_full_domain hdr(host) -i test.example.com
use_backend test_backend if host_full_domain demo_host_version
. Anda benar-benar membuat hari saya menyenangkan! Satu pertanyaan terakhir: Apakah pencarian pada setiap header dan membandingkannya dengan domain lengkap memiliki dampak kinerja yang besar?
- person Pegasus1985; 29.10.2019