รหัสจำลองของคุณสำหรับ ACL ไม่ถูกต้อง เนื่องจากการประกาศ ACL ไม่มีไวยากรณ์สำหรับตรรกะ AND/OR ย้ายไปยังตำแหน่งที่คุณใช้ ACL เช่นตัวอย่างด้านล่าง
สำหรับ IP ต้นทางคือ src
(https://cbonte.github.io/haproxy-dconv/2.2/configuration.html#7.3.3-src), เช่น.:
โปรดทราบว่าไวยากรณ์สำหรับการจับคู่สองเงื่อนไขในคำสั่ง if ไม่ใช่
use_backend mybackend ถ้า condition1 และ condition2
แต่เพียงแค่
use_backend mybackend ถ้าเงื่อนไข 1 เงื่อนไข 2
acl test_network src 192.168.10.0/24
acl test_network src 192.168.20.0/24
acl is_myhost_for_specif req.ssl_sni -i my.host.com
# ทั้งสอง acls ต้องเป็นจริง (is_myhost **และ** test_network)
use_backend mybackend1 ถ้า is_myhost test_network
use_backend mybackend2 ถ้า is_myhost
คำสั่งของ use_backend
เป็นสิ่งสำคัญ ดังนั้น IPs จาก ทดสอบ_เครือข่าย
ไปที่ แบ็กเอนด์ของฉัน1
และอื่นๆไปที่ มายแบ็คเอนด์2
หาก SNI ตรงกัน
ประกาศ ทดสอบ_เครือข่าย
ACL สองครั้งที่นี่หมายถึง "src_ip ตรงกับ 192.168.10.0/24 หรือ 192.168.20.0/24"