首页 > 解决方案 > Haproxy URL 重定向

问题描述

使用 haproxy 2.0.13-2

ACL 和重定向有问题

我想在 stuff.xyz.com/mycrap.aspx 上进行 ACL 并将其重定向到 junk.abc.com

作为测试,我有一个

ACL acl_stuff hdr(host) -i stuff.xyz.com/junk.aspx

如果 acl_stuff 使用_backend be_stuff

后端be_stuff

    stats enable
    option forwardfor
    http-response add-header X-Backend ohs1docker01
    server ohs1docker01 ohs1docker01.def.com:80 check

然而,即使是带有后端的 ACL 也无法正常工作。我点击了那个页面,我得到一个 404,这让我相信 ACL 没有被击中,所以流量没有到达后端。

我希望有人能给我一些指导

标签: haproxy

解决方案


看起来你想使用http-response 重定向

http-response redirect code 301 location https://www.junk.abc.com if { hdr_beg(host) -i stuff.xyz.com } 

acl acl_stuff hdr(host) -i stuff.xyz.com/junk.aspx无法匹配,因为主机和路径混合在一起。

匹配hostpath尝试这个。

acl match_path path_beg /junk.aspx
acl match_host hdr_beg(host) -i stuff.xyz.com
http-response redirect code 301 location https://www.junk.abc.com if match_host match_path

推荐阅读