คำถามด่วนจริงเกี่ยวกับการตอบสนอง HAProxy ฉันพยายามเขียนใหม่ / แทนที่คำขอที่ส่งไปยังแบ็กเอนด์
ฉันมีโดเมนตัวอย่างต่อไปนี้และ URIs ทั้งการแชร์ชื่อโดเมนเดียวกัน แต่เว็บเซิร์ฟเวอร์ส่วนหลังที่ต่างกัน
http://domain/web1
http://domain/web2
ฉันต้องการ web1 เพื่อไปที่ backend webfarm1 และ web2 เพื่อไปที่ webfarm2 ปัจจุบันนี้เกิดขึ้น อย่างไรก็ตามฉันต้องการที่จะตัดการ web1 หรือ web2 URI เมื่อคำขอถูกส่งไปยังแบ็กเอนด์
นี่คือ haproxy.cfg ของฉัน
frontend webVIP_80
mode http
bind :80
#acl routing to backend
acl web1_path path_beg /web1
acl web2_path path_beg /web2
#which backend
use_backend webfarm1 if web1_path
use_backend webfarm2 if web2_path
default_backend webfarm1
backend webfarm1
mode http
reqrep ^([^\ ]*)\ /web1/(.*) \1\ /\2
balance roundrobin
option httpchk HEAD /index HTTP/1.1\r\nHost:\ example.com
server webtest1 10.0.0.10:80 weight 5 check slowstart 5000ms
server webtest2 10.0.0.20:80 weight 5 check slowstart 5000ms
backend webfarm2
mode http
reqrep ^([^\ ]*)\ /web2/(.*) \1\ /\2
balance roundrobin
option httpchk HEAD /index HTTP/1.1\r\nHost:\ example.com
server webtest1-farm2 10.0.0.110:80 weight 5 check slowstart 5000ms
server webtest2-farm2 10.0.0.120:80 weight 5 check slowstart 5000ms
ถ้าฉันไปที่http://domain/web1
หรือhttp://domain/web2
ฉันเห็นมันในบันทึกข้อผิดพลาดที่คำขอบนเซิร์ฟเวอร์ในแต่ละแบ็กเอนด์ที่ requst นั้นมีไว้สำหรับทรัพยากร / web1 หรือ / web2 ตามลำดับ ดังนั้นฉันเชื่อว่ามีบางอย่างผิดปกติกับนิพจน์ปกติของฉันแม้ว่าฉันจะคัดลอกและวางจากเอกสาร http://code.google.com/p/haproxy-docs/wiki/reqrep
สรุป: ฉันพยายามกำหนดเส้นทางการรับส่งข้อมูลตาม URI แต่ฉันต้องการให้ HAProxy ตัดการเชื่อมต่อ URI เมื่อส่งการร้องขอไปยังพูลแบ็คเอนด์
ขอขอบคุณ!
จิม