Назад | Перейти на главную страницу

В чем разница между Load Balancer и обратным прокси?

Я не совсем понимаю разницу между Load Balancer и обратным прокси. Кажется, что они оба ведут себя одинаково: распределяют входящие запросы на бэкэнд-серверы.

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

  1. балансировка нагрузки: как обсуждалось выше

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

  3. безопасность: он может защитить веб-сервер (ы), предотвращая прямой доступ из Интернета; он может делать это простыми средствами, просто запутывая веб-сервер (ы), или может иметь несколько более активных компонентов, которые фактически просматривают входящие запросы в поисках вредоносного кода

  4. Ускорение SSL: при использовании SSL; он может служить точкой завершения для этих сеансов SSL, так что рабочая нагрузка, связанная с шифрованием, выгружается с веб-сервера (ов)

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

Кроме того, обратный прокси-сервер специфичен для веб-серверов.

Однако балансировщики нагрузки могут работать с множеством других протоколов. В то время как Интернет (HTTP) - это большая идея в настоящее время, такие вещи, как DNS, почта (SMTP, IMAP) и т. Д., Также могут быть сбалансированы по нагрузке. Просто в наши дни, когда большинство людей думают об Интернете или IP-сети, они думают о сети. Есть еще куча вещей, которые могут быть более непонятными или более нишевыми.

Хотя конечный результат (распределение запросов между серверами) одинаков для различных балансировщиков нагрузки и обратных прокси, разница заключается в методе распределения запросов.

Некоторые балансировщики нагрузки балансируют трафик с помощью DNS, разрешая одно и то же имя на разные IP-адреса в циклическом режиме, эффективно перенаправляя запросы. Это часто может быть полезно при запросах балансировки нагрузки между центрами обработки данных или другими физическими объектами. Это плохой выбор, если вам нужна «мгновенная» отработка отказа, поскольку вы находитесь во власти DNS-сервера ваших клиентов, который соблюдает указанный вами TTL. Cisco GSS (Global Site Selector) - хороший пример балансировки нагрузки на основе DNS.

Другие балансировщики нагрузки работают путем перезаписи заголовков пакетов, предназначенных для виртуального IP-адреса, на реальный IP-адрес сервера в ферме. Это обеспечивает балансировку нагрузки в реальном времени и почти мгновенное переключение при отказе. Примером этого может быть CSM (модуль переключения контента) Cisco.

Обратите внимание, что в обоих приведенных выше примерах существует TCP-диалог между клиентом и сервером.

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

Обратите внимание, что клиент никогда не устанавливает соединение с веб-сервером; скорее разговор идет строго между прокси и клиентом.

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