В чем разница между балансировщиком нагрузки и обратным прокси-сервером?

Ответы:

114

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

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

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

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

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

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

icky3000
источник
2
+ пул соединений (разрешить множественные запросы на одно соединение с внешним интерфейсом, когда сервер не справляется с этим, или повторно использовать соединение с внутренним интерфейсом для нескольких соединений с
внешним
+ сжатие Сжатие ответов сервера перед его отправкой клиенту (например, с помощью gzip) уменьшает
требуемую
25

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

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


источник
12

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

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

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

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

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

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

Брайан Тиллман
источник
4

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

Крис Руф
источник
3

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

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

Ману Прасад
источник
1
То есть вы имеете в виду, что балансировщик нагрузки является «обратным прокси» с распределением?
Энтони Конг
4
Это прямое дублирование nginx.com/resources/glossary/reverse-proxy-vs-load-balancer либо они украли ваш ответ, либо вы должны сослаться на свои источники
icc97