我需要能够通过 HAProxy 连接到托管在 Amazon (RDS,单 AZ) 上的 MS SQL 服务器。我尝试了以下配置(底部),但 MS SQL 返回了错误(尽管我使用了有效的登录名和密码):
已成功与服务器建立连接,但在登录前握手期间发生错误。(提供程序:TCP 提供程序,错误:0 - 远程主机强制关闭现有连接。)(Microsoft SQL Server,错误:10054)
listen RDS_MSSQL *:1433
mode tcp
balance roundrobin
option log-health-checks
server legacy xxxx.xxxxxx.us-east-1.rds.amazonaws.com:1433 check port 1433 inter 1000
答案1
这是可能的。listen
我使用一个frontend
块和一个backend
块:
frontend tcp-in-mssql
bind :8800
mode tcp
use_backend mssql
backend mssql
mode tcp
server mssqlserver 10.10.10.10:1433 check
答案2
由于 MS SQL 要求三次握手,默认情况下这似乎是不可能的
https://support.microsoft.com/en-us/kb/287932
其他数据库服务器(如 PostgreSQL)不需要这种特殊处理,可以通过 HAProxy 很好地工作