Содержание

Балансировка нагрузки Web серверов при помощи DNS

Балансировка (или выравнивание) нагрузки между двумя Web серверами при помощи Раздел DNS: Что такое DNS (1794 - DNS Support for Load Balancing).

Предположим, что есть два Web сервера, www1.yourdomain.com (192.168.1.10) и www2.yourdomain.com (192.168.1.20), причем необходимо распределить на грузку для www.yourdomain.com на эти два сервера с помощью циклической DNS. В файл зоны yourdomain.com добавьте строки:

wwwl IN A 192.168.1.10
www2 IN A 192.168.1.20
www IN CNAME www1
www IN CNAME www2

Перезапустите сервер имен и проверьте по ping хост www.yourdomain.com. В выходных данных ping появится адрес 192.168.1.10. Остановите и возобновите ping этого же хоста, и теперь ping покажет второй IP адрес. Это связано с тем фактом, что предыдущая конфигурация заставляет сервер имен циклически проходить по записям CNAME для www. Другими словами, хост www.yourdomain. com является одновременно wwwl.yourdomain.com и www2.yourdomain.com.

Теперь, когда кто-то входит на www.yourdomain. com, сервер имен будет сначала выдавать первый адрес, но следующий запрос будет предоставлять второй адрес и продолжать циклическое повторение этих адресов.

Недостатки DNS балансировки нагрузки

Одним из недостатков этого подхода с циклической DNS является то, что сервер имен не может узнать, какая система перегружена, а какая нет; он вслепую выполняет работу в цикле. Если один из серверов отказывает или становится недоступным по какой то причине, циклическая DNS будет по прежнему регулярно возвращать IP адрес отказавшего сервера. Это внесет большой беспорядок, так как некоторые пользователи смогут получить доступ к серверу, а некоторые — нет.

Заключение

В наше время, я не рекомендую заморачиваться с настройками своих DNS серверов. Одно дело кэширующий DNS сервер для локальной сети настроить, тем более во всех современных роутерах он настроен по умолчанию, а другое дело балансировка нагрузки или другие сложные настройки. Купите услугу например у ClouDNS -это не дорого, тем более все расписано на нескольких языках, в том числе английский, украинский, русский.