是否可以通过 HAProxy 连接到 MS SQL 服务器?

是否可以通过 HAProxy 连接到 MS SQL 服务器?

我需要能够通过 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 很好地工作

相关内容