Можно ли перенаправить трафик MySQL (tcp) на несколько серверов только на основе доменного имени?
Наш DNS настроен так, чтобы указывать несколько псевдонимов поддоменов на одну прокси-машину. (работает haproxy и iptables). Мы хотели бы перенаправить весь трафик базы данных через этот прокси-сервер и направить его на соответствующий сервер базы данных, БЕЗ отклонения от стандартного порта MySQL.
dev.domain1.com:3306 -> dbDevServer.domain1.com:3306
test.domain1.com:3306 -> dbTestServer.domain1.com:3306
prod.domain1.com:3306 -> dbProdServer.domain1.com:3306
Спасибо!
Нет, это невозможно, потому что протокол MySQL позволяет клиенту предоставлять ожидаемое имя хоста серверу. Нет способа маршрутизировать произвольный TCP-трафик на основе имени хоста, поскольку клиент подключается к IP-адресу, который был разрешен для данного имени хоста.
Если протокол (например, HTTP или FTP) включает требование для клиента включать имя хоста в запрос (например, Хост заголовок, который является обязательным для HTTP / 1.1), поддерживающее протокол приложение может различать ресурсы на основе имени хоста.
Вы можете предоставить Haproxy 3 виртуальных IP-адреса и создать реальный IP-адрес и протестировать IP-адрес в HAProxy.
Если вы хотите сбалансировать нагрузку на кластер mysql, используйте Галера