我们有一个 galera 集群,mariadb 10.3 版和 haproxy。
我们希望用户像这样连接客户端->haproxy->galera_cluster。我们在数据库中创建的用户允许 IP 给客户端。对于 http,我们发现您可以在标头中使用 send-proxy 或 X-Origin IP。
我们想,和galera集群一样,TCP协议。
我们在 mariadb 配置文件中添加:“proxy_protocol_networks = haproxy_server/32”
我们使用 ubuntu 16.04 和 haproxy 1.6。
haproxy 配置文件
backend galera
bind 0.0.0.0:3306
balance leastconn
mode tcp
option tcpka
option forwardfor
option log-health-checks
retries 3
timeout queue 1m
timeout connect 15s
timeout client 50m
timeout server 50m
timeout check 10s
option mysql-check user haproxy
server node1 IP_Cluster_1:3306 check send-proxy
任何想法我们如何做到这一点。
谢谢 :)
MariaDB 从 10.3 开始支持代理协议,所以
send-proxy
应该可以工作。但首先,您需要配置
proxy-protocol-networks
代理(而不是客户端)的子网。https://mariadb.com/kb/en/library/proxy-protocol-support/
问题出在 haproxy 配置文件中。这是 haproxy 的正确配置文件。
非常感谢 :)