Tek bir sunucu üzerinde çalışan birkaç uygulama için yönlendirmek için haproxy kullanıyorum. Kullanılan alanlardan biri için, birkaç uygulamadan birine yönlendirilmesi gereken birkaç düzine alt alan vardır.
Şu anda, tüm bu alt alanları ayrı bir satırda listeliyorum. Ön uç yapılandırmam şöyle görünüyor:
frontend http-in
bind *:80
acl alpha hdr(host) -i alpha.com
acl beta hdr(host) -i beta.com
acl gamma00 hdr(host) -i apple.gamma.com
acl gamma01 hdr(host) -i banana.gamma.com
acl gamma02 hdr(host) -i cherry.gamma.com
acl gamma03 hdr(host) -i durian.gamma.com
acl gamma04 hdr(host) -i elderberry.gamma.com
acl gamma05 hdr(host) -i fig.gamma.com
acl gamma06 hdr(host) -i grapefruit.gamma.com
acl gamma hdr(host) -i gamma.com
use_backend a if alpha
use_backend b if beta
use_backend sub1 if gamma00
use_backend sub1 if gamma01
use_backend sub1 if gamma02
use_backend sub2 if gamma03
use_backend sub2 if gamma04
use_backend sub2 if gamma05
use_backend sub2 if gamma06
use_backend g if gamma
default_backend default
Daha kısa bir formda benzer bir sonuç elde etmenin bir yolu var mı? Böyle bir liste etkili midir yoksa bir noktada normal ifadeye geçmek daha mı iyi olur?
regex
aslında cevabınız olan anahtar kelimeyi içeriyor, inanıyorum.hdr_beg
Bunun yerine,hdr
yalnızca alt alan adlarını numaralandırmak için kullanabileceğinizi de unutmayın . Son olarak,gamma00-06
ACL'lerinizi sadece ACL hattında aynısub1
olanısub2
kullanarak biri için diğeri için sadece ikiacl <title>
ACL'ye daraltmanız mümkün olmalıdır .