![HAProxy 経由で MS SQL サーバーに接続することは可能ですか?](https://rvso.com/image/660543/HAProxy%20%E7%B5%8C%E7%94%B1%E3%81%A7%20MS%20SQL%20%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E3%81%AB%E6%8E%A5%E7%B6%9A%E3%81%99%E3%82%8B%E3%81%93%E3%81%A8%E3%81%AF%E5%8F%AF%E8%83%BD%E3%81%A7%E3%81%99%E3%81%8B%3F.png)
Amazon でホストされている MS SQL サーバー (RDS、単一 AZ) に HAProxy 経由で接続できるようにする必要があります。次の構成 (下) を試しましたが、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 で必要な 3 ウェイ ハンドシェイクのため、デフォルトでは不可能のようです。
https://support.microsoft.com/ja-jp/kb/287932 より
PostgreSQLのような他のデータベースサーバーでは、この特別な処理は必要なく、HAProxy経由でも問題なく動作します。