gpt4 book ai didi

mysql - 使用 HAproxy 拆分 mysql 集群的读/写

转载 作者:行者123 更新时间:2023-11-29 10:14:53 26 4
gpt4 key购买 nike

我在 ubuntu 16.04 上有一个 mysql 集群,想要使用 haproxy 拆分读/写。

所有连接都将通过端口 80 完成。如果有人使用 X.X.X.X/write 连接到服务器,我希望他被重定向到 1 个特定服务器。到目前为止,这是我的配置,适用于默认设置(除了/write 之外的任何内容),但是当尝试连接/write 时,我得到“未知的 MySql 服务器主机”。我的配置如下:

global
log 127.0.0.1 local0 notice
maxconn 2000
user haproxy
group haproxy

defaults
mode tcp
log global
retries 2
timeout connect 3000
timeout server 5000
timeout client 5000

backend read
balance roundrobin
server mysql1 192.168.0.4:3306
server mysql2 192.168.0.5:3306
server mysql3 192.168.0.6:3306

backend write
server mysql1 192.168.0.4:3306

frontend local
bind *:80
acl write url_beg /write
use_backend write if write
default_backend read

感谢您的帮助!

最佳答案

MySQL 连接中没有“URL”,因此 url_beg 不可能匹配任何内容。连接到 MySQL 服务器(或代理)仅通过 IP 地址或主机名完成,而不是主机名和路径,因为没有路径。检测客户端使用的主机名是不可能的,因为它在建立连接时并未传递。

为了实现您想要的目的,您需要两个不同的主机名,指向 HAProxy 服务器上的两个不同的 IP 地址,并且这两个 IP 中的每一个都在其自己的单独 frontend 中,并使用 bind 声明。

frontend read
mode tcp
bind 203.0.113.1:3306
default_backend read

frontend write
mode tcp
bind 203.0.113.2:3306
default_backend write

关于mysql - 使用 HAproxy 拆分 mysql 集群的读/写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50267766/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com