HAProxy转发请求规则

时间:2020-08-06 05:03:46

标签: haproxy

我有一个要求:

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中做类似的事情?

1 个答案:

答案 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

有关地图Introduction to HAProxy Maps

的更多信息