Mariadb
galera cluster db中的haproxy傳遞源IP
我們有一個 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
任何想法我們如何做到這一點。
謝謝 :)
問題出在 haproxy 配置文件中。這是 haproxy 的正確配置文件。
frontend mysqld_listen bind *:3306 mode tcp log global option dontlognull option tcplog use_backend galera backend galera balance leastconn mode tcp option tcpka option tcplog option log-health-checks retries 3 option mysql-check user haproxy server node1 IP_1:3306 check weight 1 send-proxy-v2
非常感謝 :)
MariaDB 從 10.3 開始支持代理協議,所以
send-proxy
應該可以工作。但首先,您需要配置
proxy-protocol-networks
代理(而不是客戶端)的子網。