小编leo*_*vrf的帖子

Haproxy路由和基于URI路径的重写

我正在尝试设置Haproxy来对由uri路径标识的一些后端进行负载均衡请求.例如:

https://www.example.com/v1/catalog/foo/bar

应该导致"catalog-v1"后端.

事情是每个应用程序响应不同的路径,所以我不仅要识别应用程序,还要重写URL路径.例如

至

我知道我不应该使用Haproxy进行重写,但现在这是不可避免的.

尝试了以下正则表达式,该正则表达式适用于regex101:

([a-z.]*)\/([a-z0-9\-\.]*)\/([a-z\-]*)\/(.*)
Run Code Online (Sandbox Code Playgroud)

代换:

\1/\3-\2/\4
Run Code Online (Sandbox Code Playgroud)

最后这里是haproxy.config:

global
    daemon
    user root
    group root
    maxconn 256000
    log     127.0.0.1 local0
    log     127.0.0.1 local1 notice
    stats   socket /run/haproxy/stats.sock mode 777 level admin
defaults
    log      global
    option   dontlognull
    maxconn  4000
    retries  3
    timeout  connect 5s
    timeout  client  1m
    timeout  server  1m
    option   redispatch
    balance  roundrobin

listen stats :8088
    mode http
    stats enable
    stats uri /haproxy
    stats refresh 5s

backend catalog-v1
    mode http
    option httpchk …
Run Code Online (Sandbox Code Playgroud)

regex rewrite load-balancing path haproxy

13
推荐指数
2
解决办法
4万
查看次数

标签 统计

haproxy ×1

load-balancing ×1

path ×1

regex ×1

rewrite ×1