Разница между прокси-сервером и обратным прокси-сервером - PullRequest
1662 голосов
/ 22 октября 2008

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

Ответы [ 21 ]

2822 голосов
/ 14 декабря 2008

Предыдущие ответы были точными, но, возможно, слишком краткими. Я постараюсь добавить несколько примеров.

Прежде всего, слово «прокси» описывает кого-то или что-то, действующее от имени кого-то другого.

В компьютерной сфере речь идет об одном сервере, действующем от имени другого компьютера.

В целях доступности я ограничу свое обсуждение веб-прокси - однако идея прокси-сервера не ограничивается веб-сайтами.

FORWARD прокси

Большинство обсуждений веб-прокси относится к типу прокси, известному как «прямой прокси».

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

Сказка о 3 компьютерах (часть I)

Например, я перечислю три компьютера, подключенных к Интернету.

  • X = ваш компьютер или "клиентский" компьютер в интернете
  • Y = прокси-сайт, proxy.example.org
  • Z = веб-сайт, который вы хотите посетить, www.example.net

Обычно можно подключиться напрямую с X --> Z.

Однако в некоторых случаях лучше для Y --> Z от имени X, какие цепочки следующим образом: X --> Y --> Z.

Причины, по которым X захочет использовать прямой прокси-сервер:

Вот (очень) частичный список использования прямого прокси-сервера.

  • 1) X не может напрямую получить доступ к Z потому что

    • a) Кто-то, имеющий административные полномочия по подключению к Интернету X, решил заблокировать любой доступ к сайту Z.

      • Примеры:

        • Вирус Storm Worm распространяется, заставляя людей посещать familypostcards2008.com, поэтому системный администратор заблокировал доступ к сайту для предотвращения случайного заражения пользователей.

        • Сотрудники крупной компании тратят слишком много времени на facebook.com, поэтому руководство хочет заблокировать доступ в рабочее время.

        • Местная начальная школа запрещает доступ в Интернет на веб-сайте playboy.com.

        • Правительство не может контролировать публикацию новостей, поэтому вместо этого оно контролирует доступ к новостям, блокируя такие сайты, как wikipedia.org. См. TOR или FreeNet .

    • b) Администратор Z заблокировал X.

      • Примеры:

        • Администратор Z заметил попытки взлома, исходящие от X, поэтому администратор решил заблокировать IP-адрес X (и / или netrange).

        • Z - это сайт форума. X спамит на форуме. Z блоков X.

ОБРАТНЫЙ прокси

Сказка о 3 компьютерах (часть II)

В этом примере я перечислю три компьютера, подключенных к Интернету.

  • X = ваш компьютер или "клиентский" компьютер в интернете
  • Y = обратный прокси-сайт, proxy.example.com
  • Z = веб-сайт, который вы хотите посетить, www.example.net

Обычно можно подключиться напрямую с X --> Z.

Однако в некоторых случаях администратору Z лучше ограничить или запретить прямой доступ и заставить посетителей сначала проходить через Y. Таким образом, как и прежде, у нас есть данные, извлекаемые Y --> Z от имени X, которые заключаются в следующую цепочку: X --> Y --> Z.

На этот раз отличается от «прямого прокси», так как на этот раз пользователь X не знает, что он обращается к Z, потому что пользователь X видит только то, что он общается с Y .
Сервер Z невидим для клиентов, и только обратный прокси Y виден снаружи. Обратный прокси не требует (прокси) конфигурации на стороне клиента.

Клиент X считает, что он общается только с Y (X --> Y), но реальность такова, что Y переадресация всего общения (X --> Y --> Z снова).

Причины, по которым Z захочет настроить обратный прокси-сервер:

  • 1) Z хочет заставить весь трафик на свой веб-сайт сначала проходить через Y.
    • a) Z имеет большой веб-сайт, который хотят видеть миллионы людей, но один веб-сервер не может обрабатывать весь трафик. Таким образом, Z устанавливает множество серверов и размещает в Интернете обратный прокси-сервер, который отправляет пользователей на ближайший к ним сервер, когда они пытаются посетить Z. Это часть работы концепции сети распространения контента (CDN).
  • 2) Администратор Z обеспокоен местью за контент, размещенный на сервере, и не хочет показывать основной сервер напрямую.
    • a) Владельцы таких спам-брендов, как «Канадская аптека», имеют тысячи серверов, хотя в действительности большинство веб-сайтов размещаются на гораздо меньшем количестве серверов. Кроме того, жалобы на злоупотребление спамом отключат только общедоступные серверы, а не главный сервер.

В приведенных выше сценариях Z имеет возможность выбрать Y.

Ссылки на темы из поста:

Сеть доставки контента

ПО для прямого прокси (на стороне сервера)

обратный прокси-сервер для HTTP (на стороне сервера)

ПО для обратного прокси для TCP (на стороне сервера)

см. Также:

505 голосов
/ 10 августа 2012

пара простых определений будет

Forward Proxy: действует от имени запрашивающего (или потребителя услуги)

Обратный прокси-сервер: действует от имени поставщика услуг / контента.

342 голосов
/ 31 августа 2016

Я нашел эту диаграмму очень полезной. Это просто показывает архитектуру forward против reverse настройки прокси от клиента к серверу через Интернет. Это изображение поможет вам лучше понять сообщение qyb2zm302 и другие сообщения.

Forward Proxy vs Reverse Proxy

Вы также можете посмотреть это видео из F5 DevCentral от Peter Silva.

Изображение Источник: Quora . Все кредиты человеку, который создал эту диаграмму.

Это напомнило мне классическую пословицу:

Картинка стоит 1000 слов.

205 голосов
/ 07 января 2013

Ответ qyb2zm302 подробно описывает применение прокси-серверов, но раскрывает фундаментальную концепцию между прямым и обратным прокси. Для обратного прокси, X -> Y -> Z, X знает о Y, а не Z, а не наоборот.

http://www.jscape.com/blog/bid/87783/Forward-Proxy-vs-Reverse-Proxy очень четко объясняет разницу между прямым и обратным прокси.

Прокси - это просто посредник для общения (запросы + ответы). Клиент <-> Прокси <-> Сервер

  • Клиентский прокси: ( Клиент <-> Прокси ) <-> Сервер

    Прокси-сервер действует от имени клиента. Клиент знает обо всех 3 машины участвуют в цепочке. Сервер не

  • Прокси-сервер: Клиент <-> ( Прокси <-> Сервер )

    Прокси-сервер действует от имени сервера. Клиент знает только о прокси. Сервер знает всю цепочку.

Мне кажется, что forward и reverse - просто запутанные, зависящие от перспективы имена для client и server proxy. Я предлагаю отказаться от первого для второго, для явного общения.

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

125 голосов
/ 17 января 2015

Некоторые диаграммы могут помочь:

Прямой прокси

Forward proxy

Обратный прокси

Reverse proxy

70 голосов
/ 23 октября 2008

Разница в основном в развертывании. Прямой и обратный веб-прокси имеют одинаковые базовые функции, они принимают запросы на HTTP-запросы в различных форматах и ​​предоставляют ответ, обычно путем доступа к исходному или контактному серверу.

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

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

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

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

Это короткая версия, я могу уточнить, если люди хотят комментировать.

56 голосов
/ 20 февраля 2016

Прокси-сервер: отправляет запрос от имени клиента . Таким образом, сервер вернет ответ прокси, а прокси перешлет ответ клиенту. Фактически, сервер никогда не «узнает», кем был клиент (IP-адрес клиента), он будет знать только прокси. Однако клиент определенно знает сервер, поскольку он по существу форматирует HTTP-запрос, предназначенный для сервера, но просто передает его прокси.

enter image description here

Обратный прокси-сервер: получает запрос от имени сервера . Он перенаправляет запрос на сервер, получает ответ и затем возвращает ответ клиенту. В этом случае клиент никогда не «узнает», кто был фактическим сервером (IP-адрес сервера) (за некоторыми исключениями), он будет знать только прокси. Сервер будет знать или не знать фактического клиента, в зависимости от конфигурации обратного прокси.

enter image description here

39 голосов
/ 04 августа 2016

Лучшее объяснение здесь с диаграммами:

В то время как прямой прокси прокси в интересах клиентов ( или запрашивающих хостов ) , обратный прокси прокси в интересах серверов

В действительности, тогда как прямой прокси скрывает идентификационные данные клиентов, обратный прокси скрывает идентификационные данные серверов

38 голосов
/ 22 октября 2008

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

25 голосов
/ 01 октября 2017

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

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

enter image description here Источник изображения: docs.microsoft.com

...