在后端使用 acl/缩小我的配置

在后端使用 acl/缩小我的配置

在我的场景中,我必须根据包含的 URL 字符串切换服务器&mode=edit&mode=create在我的服务器之间切换服务器以平衡负载。我的配置是通过大约 100 个不同的 URL/IP 脚本创建的。我目前使用一个前端和两个后端的方式相当冗长,大量的健康检查对我的服务器不利...

我怎样才能把这些东西放在一起listen而不是frontend?我不知道如何在监听中使用 ACL 来确定使用哪个服务器。

frontend myFrontend

    bind 127.0.0.1:80
    bind 127.0.0.1:443 ssl crt /etc/haproxy/ssl/myFrontend/myFrontend.pem
    redirect scheme https if !{ ssl_fc }
    use_backend myBackend-edit if { url_sub &mode=edit } or { url_sub &mode=create }
    default_backend myBackend

backend myBackend

    server srv1 1.1.1.1:10201 cookie srv1 ssl check
    server srv2 2.2.2.2:10201 cookie srv1 ssl check backup
    server srv3 3.3.3.3:10201 cookie srv1 ssl check backup

backend myBackend-edit

    server srv1 1.1.1.1:10201 cookie srv1 ssl check backup
    server srv2 2.2.2.2:10201 cookie srv1 ssl check backup
    server srv3 3.3.3.3:10201 cookie srv1 ssl check

答案1

正确的关键字是use-server(请注意,这是一个破折号,而不是像 这样的下划线use_backend。现在我的负载减少了,配置也更小了。我只搜索了类似使用服务器...

这是我的工作示例:

listen myFrontend

    bind 127.0.1.1:80
    bind 127.0.1.1:443 ssl crt /etc/haproxy/ssl/myFrontend/myFrontend.pem
    redirect scheme https if !{ ssl_fc }
    use-server srv2 if { url_sub &mode=edit } or { url_sub &mode=create }
    server srv1 1.1.1.1:10201 cookie srv1 ssl check
    server srv2 2.2.2.2:10201 cookie srv1 ssl check backup
    server srv3 3.3.3.3:10201 cookie srv1 ssl check backup

如果愿意的话,您还可以在那里使用负载平衡并坚持使用 cookie。

来源:haproxy 手册页|或者使用漂亮的一个:)

相关内容