Правильный способ балансировки нагрузки сайта в двух местах

Я обсудил здесь сценарий, который использует наша компания, и хотел бы получить некоторую информацию, если это возможно.

У нас есть основной URL для сайта, назовите его " http://www.site.com/". В какой-то момент во время его создания было решено, что сайт будет сбалансирован по нагрузке активно / активно в двух физических центрах обработки данных. Это было достигнуто в то время, когда сетевое устройство возвращало перенаправление 301 либо на " https://site1.site.com/", либо на " https://site2.site.com/". Очевидно, что это не очень хорошо подходит для поисковых систем, так как при поиске сайта вы получаете специфичные для сайта результаты для перенаправления во время сканирования, когда маркетинг хочет, чтобы основной сайт www.site.com всегда показывался. Мне любопытно, что бы правильно реализовать решение, подобное этому?

4 ответа

"Это было достигнуто в то время, когда сетевое устройство возвращало перенаправление 301..."

Это, друг мой, не сбалансирована нагрузка на два центра обработки данных. Это одно устройство, сидящее за одним из них, перенаправляющее клиентов.

Вам следует обратить внимание на использование одного (или двух) локальных балансировщиков нагрузки на каждом сайте, предпочтительно того, что может обновлять DNS и иметь логику GeoIP (очень удобно, когда вы находитесь на больших географических расстояниях).

Я лично использую балансировщики нагрузки KEMP и очень рекомендую их: http://www.kemptechnologies.com/uk/server-load-balancing-appliances/geo-loadmaster/glm-overview.html

Как насчет использования распределения нагрузки с DNS?

www.site.com     1.1.1.1
www.site.com     1.1.1.2
www.site.com     1.1.1.3

"Хороший" способ выполнить "Глобальную балансировку нагрузки на сервер" (GSLB) - это несколько центров обработки данных (DC), каждый из которых имеет граничные маршрутизаторы с одинаковым диапазоном IP-адресов, используя BGP для выбора кратчайшего пути - иначе говоря, Anycast.

В более дешевой версии часто используются идентичные устройства балансировки нагрузки (LB) с надстройкой "GSLB" в каждом месте, где LB обмениваются пульсом, и переключаются при сбое с помощью "хитростей" DNS (из-за отсутствия лучшего слова).

Я бы с уважением предложил, чтобы вы договорились о требованиях к нескольким DC или, по крайней мере, получили финансирование для серьезных усилий. Надлежащее развертывание на нескольких DC нелегко настроить, и требует больших предварительных инвестиций в оборудование (маршрутизаторы) и опыт. Репликация баз данных и изменение наборов данных обычно очень сложны.

Одним из возможных обходных путей может быть Amazon Elastic Load Balancer (ELB) вместе с переходом на Amazon EC2. У ELB есть некоторые условия для охвата нескольких "зон доступности" Amazon, а EC2+ELB дешевле по сравнению с отказоустойчивым многоцентровым отказоустойчивым центром обработки данных.

Если у вас есть деньги, чтобы потратить, я бы посмотрел на реализацию чего-то вроде Cisco GSS или F5 GTM на обоих сайтах и ​​делегирование DNS им.

По сути, это работает, указывая вашу запись A для www.site.com на GNS/GTM, которые вы, в свою очередь, настроили с помощью IP-адресов ваших веб-серверов или их VIP-адресов, а также их местоположения. Когда клиент выполняет поиск DNS для www.site.com, GSS/GTM возвращает IP-адрес соответствующего сервера /VIP.

Балансировка нагрузки может выполняться на основе циклического перебора, по географическому расположению, по метрикам производительности или по нагрузке, или при наличии активного центра обработки данных и центра обработки данных DR - в основном все те же принципы, которые применяются к балансировке нагрузки.

Другие вопросы по тегам