galeraクラスタ、mariadbバージョン10.3、haproxyがあります。
私たちは、ユーザーがclient->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
どうすればこれを行うことができますか?
ありがとうございます:)
答え1
MariaDBは10.3以降のプロキシプロトコルをサポートしているので、send-proxy
うまく機能します。
proxy-protocol-networks
ただし、まずクライアントではなくプロキシサブネットを設定する必要があります。
答え2
問題は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
ありがとう:)