it-swarm.com.ru

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

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

1663
Vicky

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

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

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

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

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 .

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

      • Примеры:

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

        • 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.
    • а) Z имеет большой веб-сайт, который хотят видеть миллионы людей, но один веб-сервер не может обрабатывать весь трафик. Таким образом, Z устанавливает множество серверов и размещает обратный прокси-сервер в Интернете, который отправляет пользователей на ближайший к ним сервер, когда они пытаются посетить Z. Это часть работы концепции сети распространения контента (CDN).
  • 2) Администратор Z обеспокоен местью за контент, размещенный на сервере, и не хочет показывать главный сервер напрямую общественности.
    • а) Владельцы таких спам-брендов, как "Канадская аптека", имеют тысячи серверов, в то время как в действительности большинство веб-сайтов размещаются на гораздо меньшем количестве серверов. Кроме того, жалобы на злоупотребление спамом отключат только общедоступные серверы, а не главный сервер.

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

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

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

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

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

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

смотрите также:

2823
qyb2zm302

Пара простого определения будет

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

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

506
Krishna Bheemanakatte

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

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

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

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

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

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

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

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

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

205
Protongun

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

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

Forward proxy

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

Reverse proxy

125
Maria Ines Parnisari

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

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

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

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

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

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

70
benc

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

enter image description here

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

enter image description here

56
Dimos

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

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

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

39
Farhan

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

38
Ignacio Vazquez-Abrams

Cloudflare имеет отличную статью с изображениями, объясняющими это в деталях.

Проверьте здесь: https://www.cloudflare.com/learning/cdn/glossary/reverse-proxy/

enter image description here


enter image description here

25
Nakamoto

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

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

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

25
JSON C11

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

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

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

для получения дополнительной информации посетите: Apache Docs

23
ironman_ma

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

Прямой прокси-сервер скрывает идентификационные данные клиентов (пользователей), тогда как обратный прокси-сервер скрывает идентификационные данные ваших серверов.

19
Bonnie Varghese

Согласно моему пониманию ..........

Начнем с того, что все знают, что прокси означает "полномочия представлять кого-то другого". Теперь есть две вещи: прямой и обратный прокси.

FORWARD PROXY Предположим, что вы хотите получить доступ к "google", а "google", в свою очередь, будет иметь n серверов для ответа на этот конкретный запрос.

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

-----> B -----> C

Теперь вы отправляете запрос через B, поэтому C будет думать, что запрос поступает от B, а не A. Таким образом, вы можете предотвратить доступ IP-адресов ваших клиентов к внешнему миру.

ОБРАТНЫЙ ПРОКСИ. Теперь в этом случае, чтобы вы поняли, мы возьмем тот же случай прямого прокси. Здесь вы запросили что-то для Google, которое в свою очередь собирается отправить один запрос на сервер приложений или другой прокси-сервер для получения ответа. Так что эти вещи будут происходить как объяснено ниже.

-----> B -----> C

          C------>D

          C<------D

A <----- B <----- C Из приведенной выше диаграммы видно, что запрос был отправлен на C из B, а не из A. Затем из C будет один запрос, отправленный на D. Аналогично ответ будет идти к C от D, а затем к B и A.

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

Пожалуйста, прокомментируйте, если считаете, что приведенное выше объяснение неверно.

10
Sourabh Sharma

Переадресация прокси предоставить клиенту анонимность (т. Е. Думать, Tor).

Обратные прокси-серверы предоставлять анонимность серверам на стороне сервера (т. Е. Думать о серверах, находящихся за DMZ).

10
8bitjunkie

Хотя я понимаю с точки зрения Apache, что Proxy означает, что если сайт x прокси для сайта y, то запросы для x возвращают y.

Обратный прокси-сервер означает, что ответ от y настроен так, что все ссылки на y становятся x.

Так что пользователь не может сказать, что прокси участвует ...

10
Chris Kimpton

Вот пример обратного прокси (в качестве балансировщика нагрузки).

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

9
ae.

если нет проксиto see from client side and server side are the same: Client -> Serverпроксиfrom client side: Client -> proxy -> Server from Server side: Client -> Serverобратный проксиfrom client side: Client -> Server from Server side: Client -> proxy -> Server

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

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

   User side          |      Server side
client  <->  proxy  <-->  reverse_proxy <-> real server
4
tinyhare

Forward Proxy обслуживает пользователи: помощь пользователи доступ к серверу.

обратный прокси-сервер обслуживает сервер: защищать сервер от пользователи.

4
HoangYell

С точки зрения пользователя, при отправке запроса на прокси или обратный прокси сервер:

  • прокси - требует два аргумента:

    1) что получить и 2) какой прокси-сервер использовать промежуточный

  • обратный прокси - требует один аргумент:

    1.) Что получить

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

1
pspi

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

Прокси (неявно "прямой прокси") соединяет несколько локальных клиентов с любым удаленным сервером:

c--
   |--p--s
c-- 

Обратный прокси-сервер соединяет несколько локальных серверов с любым удаленным клиентом (обратите внимание, как макет меняется):

s--
   |--p--c
s--

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

1
Alex Fotios