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

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

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

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

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

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

FORWARD proxy

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

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

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

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

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

Как правило, можно было бы подключиться непосредственно из X --> Z.

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

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

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

  • 1) X не может напрямую обращаться к Z, потому что

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

      • Примеры:

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

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

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

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

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

      • Примеры:

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

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

REVERSE proxy

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

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

  • X = компьютер или компьютер «клиент» в Интернете
  • Y = веб-сайт обратного прокси, proxy.example.com
  • Z = веб-сайт, который вы хотите посетить, http://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).
      • Примеры:
        • Apple Trailers использует Akamai
        • Jquery.com размещает свои файлы javascript, используя CloudFront CDN ( образец ).
        • и т.п.
  • 2) Администратор Z беспокоится о возмездии за контент, размещенный на сервере, и не хочет публиковать основной сервер напрямую.
    • a) Владельцы спам-брендов, таких как «Canadian Pharmacy», по-видимому, имеют тысячи серверов, в то время как на самом деле большинство сайтов размещено на гораздо меньшем количестве серверов. Кроме того, жалобы на жалобы о спаме будут закрыты только публичными серверами, а не основным сервером.

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

Ссылки на темы из этой публикации:

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

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

  • PHP-прокси
  • CGI-прокси
  • phproxy (прекращено)
  • Glype
  • Интернет-цензура wiki: Список веб-прокси
  • кальмар (видимо, также может работать как обратный прокси)

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

  • apache mod_proxy (также может работать в качестве прямого прокси для HTTP)
  • nginx (используется на hulu.com, спам-сайтах и ​​т. д.)
  • HAProxy
  • lighthttpd
  • perlbal (написанный для livejournal)
  • portfusion
  • фунт
  • лаковый кэш (написанный гуру freebsd )
  • покоиться

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

  • баланс
  • делегат
  • ручка
  • portfusion
  • чистый балансировщик нагрузки (веб-сайт не функционирует)
  • директор python

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

  • Википедия – Сеть доставки контента
  • Википедия – Категория: Reverse_proxy
  • Википедия – балансировка нагрузки
  • Википедия – Масштабируемость

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

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

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

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

Прямой прокси против обратного прокси

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Переслать прокси

Переслать прокси

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

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

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

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

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

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

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

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

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

введите описание изображения здесь

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

введите описание изображения здесь

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

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

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

Фактически, в то время как прямой прокси скрывает идентификаторы клиентов, обратный прокси скрывает идентификаторы серверов

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

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

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

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

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

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

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

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

введите описание изображения здесь Источник изображения: docs.microsoft.com

По моему пониманию ……….

Для начала, поскольку все знают, что прокси означает «авторитет представлять кого-то другого». Теперь есть две вещи: Forward and Reverse proxy.

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.

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

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

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

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

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

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

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

Провайдеры прямого доступа предоставляют клиенту анонимность (т. Е. Считают Tor).

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

если прокси-сервер не 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 <-> gate_server <-> reverse_proxy <-> realserver 

С точки зрения «сервера ворот», один из прокси-серверов другой обратный.

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

  • Что такое монада?
  • Полиморфизм - определение только двух предложений
  • Что представляет собой складку для других типов, кроме списка?
  • «Параметр» против «Аргумент»
  • Что такое непрозрачное значение в C ++?
  • В чем разница между «методом classа» и «статическим методом»?
  • Различия между инициализацией, определением, объявлением переменной
  • Инверсия управления <Инъекция зависимостей
  • Что такое безопасный тип?
  • Что такое облачные вычисления?
  • В чем разница между абстрактным деревом синтаксиса и деревом синтаксиса бетона?
  • Давайте будем гением компьютера.