是否可以透過 HAProxy 連接到 MS SQL 伺服器?

是否可以透過 HAProxy 連接到 MS SQL 伺服器?

我需要能夠透過 HAProxy 連接到託管在 Amazon(RDS、單一可用區)上的 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 正常運作

相關內容