基于URL的HAProxy路由

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于URL的HAProxy路由相关的知识,希望对你有一定的参考价值。

场景:如果url是http://domainhttp://domain/web,则不应该有重定向。对于其他任何事情,比如http://domain/abchttp://domain/xyz,应该有重定向到http://domain2

这是我尝试过的,但它只适用于http://domain/web。如果网址是http://domain,它仍然会重定向到http://domain2

acl is_root path -i
acl missing_slash path_reg ^/*/[^/]*$$  
acl isweb path_beg /web
http-request set-header X-Location-Path %[capture.req.uri] if  !isweb !is_root !missing_slash
http-request replace-header X-Location-Path [^/]+/(.*) 1 if  !isweb !is_root !missing_slash
http-request redirect code 301 location https://www.domain2.com%[hdr(X-Location-Path)] if  !isweb !is_root !missing_slash
答案

匹配字符串/

acl is_root path -m str /

请求URI实际上永远不会是HTTP中的空字符串。浏览器将始终发送GET / HTTP/1.1,无论地址栏是否实际显示主机名后面的/

以上是关于基于URL的HAProxy路由的主要内容,如果未能解决你的问题,请参考以下文章

如何在Angular2 rc3路由中处理来自oauth重定向url的哈希片段

SPA路由实现的基本原理

HAProxy负载均衡策略

mvc——URL路由_1_定义路由(映射url到动作方法)

keepalive高可用haproxy实现URL资源的动静分离

学习Haproxy