我有一个要求:
Incoming request- <haproxyIP>:8080/proxy/component/upgrade
Forward to- <serverIP>:8443/component/upgrade
Incoming request- haproxyIP:8080/proxy/component/restore
Forward to- <serverIP>:8443/component/restore
我目前将前端和后端写为:
frontend http-in
acl acl_upgrade path_sub /proxy/component/upgrade
use_backend b_upgrade if acl_upgrade
acl acl_restore path_sub /proxy/component/restore
use_backend b_restore if acl_restore
backend b_upgrade
mode http
http-request set-path /component/upgrade
server s1 10.1.1.1:8443 ssl verify none
backend b_restore
mode http
http-request set-path /component/upgrade
server s2 10.1.1.1:8443 ssl verify none
不是编写两个后端,而是可以根据URL的一部分使用正则表达式之类的内容来仅创建一个后端,
Incoming request- <haproxyIP>:8080/proxy/<extracted part>
Forward to- <serverIP>:8443/<extracted part>
是否可以在haproxy中做类似的事情?
答案 0 :(得分:1)
您可以尝试使用地图。 下面的示例未经测试,但显示了此想法。
url4setpath.cfg
# map url4setpath
/proxy/component/upgrade /component/upgrade
/proxy/component/restore /component/restore
frontend http-in
use_backend b_default
backend b_upgrade
mode http
http-request set-path path,map_beg(url4setpath.cfg,/)
server s1 10.1.1.1:8443 ssl verify none
的更多信息