Я хотел настроить что-то вроде этого:
ftp.example.com
который указывает на разные ftp-серверы. Например:
111.111.111.1
111.111.111.2
111.111.111.3
111.111.111.4
Когда кто-то подключается к ftp.example.com, он случайным образом подключается к одному из этих серверов. Я думал о решении на основе DNS, но есть ли что-нибудь получше?
Вам нужен стандартный DNS Настройка Round Robin. Вы просто добавляете несколько записей A на свой DNS-сервер.
Существуют ограничения (см. Связанный документ), и чтобы их избежать, вам понадобится прокси с поддержкой FTP или продукт балансировки нагрузки с поддержкой FTP, который будет находиться перед вашими FTP-серверами.
Есть несколько Программные балансировщики нагрузки FOSS доступны для таких случаев использования. Разница между балансировкой нагрузки DNS RR и балансировщиками нагрузки TCP заключается в прерывании соединения. Вы бы рекламировали одну (или несколько) записей A, которая указывает на один или несколько балансировщиков нагрузки (LB). Затем LB могут отправлять трафик обратно на несколько внутренних ftp-серверов. Преимущество здесь заключается в большем контроле распределения нагрузки на внутренние FTP-серверы. Точно так же, если вам нужно отключить FTP-сервер, балансировка нагрузки TCP значительно упрощает этот процесс. При использовании DNS RR вам нужно будет убедиться, что вы удалили внутренний FTP-сервер и дождаться обновления кешей DNS, прежде чем отключать FTP-сервер или рисковать, что пользователи попадут в неработающий IP-адрес.