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

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

Ответ 1

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

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

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

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

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 (на стороне сервера)

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

Ответ 2

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

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

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

Ответ 3

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

Forward Proxy vs Reverse Proxy

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

Источник изображения: Quora. Однако, согласно Martijn Pieters, это изображение может быть с сайта Pulse Secure Community или сайта Jula Pauli site (на французском языке) по адресу developpez.com.

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

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

Ответ 4

Прямой прокси против Обратного прокси (2012) очень четко объясняет разницу между прямым и обратным прокси.

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

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

  • Клиентский прокси: ( клиент & lt; → прокси ) & lt; → сервер

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

  • Прокси-сервер: клиент & lt; → ( прокси-сервер → )

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

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

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

Ответ 5

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

Первой прокси

Forward proxy

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

Reverse proxy

Ответ 6

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

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

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

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

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

Ответ 7

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

Enter image description here

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

Enter image description here

Ответ 8

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

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

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

Ответ 9

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

Ответ 11

Прокси (прямой прокси):

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

Обратный прокси-сервер:

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

Enter image description here

Источник изображения: Создание прямого прокси с использованием маршрутизации запросов приложений

Ответ 12

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

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

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

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

Ответ 13

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

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

Ответ 14

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

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

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

Ответ 15

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

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

Вперед прокси

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

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

A & rarr; B & rarr; C

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

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

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

A & rarr; B & rarr; C

C & rarr; D

C & larr; D

A & larr; B & larr; C

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

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

Ответ 16

Перенаправляющие прокси-серверы предоставляют клиенту анонимность (например, Tor).

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

Ответ 17

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

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

Серверы приложений передают содержимое веб-сайта обратно клиенту.

Ответ 18

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

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

Ответ 19

Если нет прокси

Чтобы увидеть со стороны клиента и сервера одинаково:

Клиент → Сервер

Proxy

Со стороны клиента:

Клиент → прокси → Сервер

Со стороны сервера:

Клиент → Сервер

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

Со стороны клиента:

Клиент → Сервер

Со стороны сервера:

Клиент → прокси → Сервер

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

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

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

Ответ 20

Взгляд с точки зрения пользователя: при отправке запроса на прокси или обратный прокси-сервер:

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

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

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

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

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

Ответ 21

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

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

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

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

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

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