在使用 HAProxy 进行虚拟主机时,我可以看到如何使用前端标头中的 Host 来决定要路由到哪个后端。但是,是否可以将后端设置为包含路径的 URL(与设置虚拟主机时使用 apache 或 nginx 所做的不同)。
http://www.techrawr.com/tag/haproxy/ - 显示了大部分内容。但是,如果后端在一台服务器上,但使用 backend1 和 backend2 作为服务器呢?
在使用 HAProxy 进行虚拟主机时,我可以看到如何使用前端标头中的 Host 来决定要路由到哪个后端。但是,是否可以将后端设置为包含路径的 URL(与设置虚拟主机时使用 apache 或 nginx 所做的不同)。
http://www.techrawr.com/tag/haproxy/ - 显示了大部分内容。但是,如果后端在一台服务器上,但使用 backend1 和 backend2 作为服务器呢?
我认为您正在寻找这样的东西,以便根据 URL 平衡到不同的服务器:
来源:Haproxy ACL 用于 URL 请求的平衡
HAProxy 中的“server”指令支持许多参数,其中一个选项是“redir”参数。您可以使用它将 HTTP 302 重定向发送回客户端 - 并让客户端与后端通信(但这不会代理):
例子:
backend www_example_com
balance roundrobin
server Backend1 10.0.0.1:80 redir http:// www.example.com/backend1
server Backend2 10.0.0.1:80 redir http:// www.example.com/backend2
如果只有 HA 代理具有公共端口,则重定向到后端将不是一个好的解决方案为此,您可能希望 ha 代理按预期完成工作,尽管我不确定修改路径取决于负载均衡的结果。
我在类似的问题下发布了我的stackoverflow解决方案,查看更多信息详细答案