![使用 haproxy 选择服务器后端到某个 URL](https://linux22.com/image/527429/%E4%BD%BF%E7%94%A8%20haproxy%20%E9%80%89%E6%8B%A9%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%90%8E%E7%AB%AF%E5%88%B0%E6%9F%90%E4%B8%AA%20URL.png)
对于某些 URL,我不想使用某些服务器。因此请使用其他服务器。
实际上我有这个 haproxy 配置。
global
daemon
log 127.0.0.1 local0
#log loghost local0 info
maxconn 4096
#debug
#quiet
user haproxy
group haproxy
defaults
log global
mode http
option httplog
option dontlognull
retries 3
option redispatch
maxconn 2000
contimeout 5000
clitimeout 50000
srvtimeout 50000
balance roundrobin
stats enable
stats refresh 5s
stats auth admin:123abc789xyz
# Set up application listeners here.
listen application 0.0.0.0:10000
server localhost 127.0.0.1:10100 weight 1 maxconn 5 check
server externe 127.0.0.1:10101 weight 1 maxconn 5 check
举个例子,我希望所有到 /users 的 url 都只由服务器 localhost 提供服务,而不是由 externe 提供服务。
答案1
我们在服务器上做了类似的事情。我们首先设置了一个前端代理,使用 HAProxy 的 ACL 允许使用一个或另一个后端。在您的示例中,它可能类似于以下内容:
frontend application
bind 0.0.0.0:10000
acl use_localhost path_reg ^/users$
use_backend localhost if use_localhost
default_backend externe
backend localhost
server localhost 127.0.0.1:10100 weight 1 maxconn 5 check
backenb externe
server externe 127.0.0.1:10101 weight 1 maxconn 5 check
在示例中使用本地主机是 ACL 的名称。您可以使用许多不同的ACL。我希望这能给你一些启发。