我在ubuntu16.04上有一个mysql集群,想用haproxy拆分读写。
所有连接将通过端口80完成。如果有人用x.x.x.x/write连接到服务器,我希望他被重定向到一个特定的服务器。到目前为止,这是我的配置,适用于默认设置(除了/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
谢谢你的帮助!
1条答案
按热度按时间ej83mcc01#
mysql连接中没有“url”,所以
url_beg
什么都比不上。连接到mysql服务器(或代理服务器)只通过ip地址或主机名完成,而不是主机名和路径,因为没有路径。检测客户端使用的主机名是不可能的,因为在建立连接时它不会被传递。为了完成您想要的任务,您需要两个不同的主机名,指向haproxy服务器上的两个不同的ip地址,并且这两个ip中的每一个都有自己的独立名称
frontend
与bind
声明。