Мне нужно подключиться к серверу MS SQL, размещенному на Amazon (RDS, одна зона доступности), через 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
Это возможно. Вместо того 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
Похоже, что по умолчанию это невозможно из-за трехстороннего рукопожатия, требуемого MS SQL.
https://support.microsoft.com/en-us/kb/287932
Другой сервер баз данных, такой как PostgreSQL, не требует такой специальной обработки и хорошо работает через HAProxy.