Мне нужно иметь возможность подключиться к серверу MS SQL, размещенному на Amazon (RDS, single AZ) через HAProxy. Я попробовал следующую конфигурацию (внизу), но MS SQL вернул мне (хотя я использовал действительный логин и пароль):
Соединение с сервером было успешно установлено, но затем произошла ошибка во время предварительного подтверждения входа в систему. (поставщик: TCP Provider, ошибка: 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.