Назад | Перейти на главную страницу

Различия между шлюзом и обратным прокси-сервером на примере Nginx?

https://en.wikipedia.org/wiki/Proxy_server#Types_of_proxy_servers говорит

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

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

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

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

Из HTTP Gourley: Полное руководство

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

Рисунок 6-2 иллюстрирует разницу между прокси и шлюзами:

• Промежуточное устройство на рисунке 6-2a является прокси-сервером HTTP, потому что прокси-сервер передает HTTP-данные как клиенту, так и серверу.

• Промежуточное устройство на рисунке 6-2b является шлюзом HTTP / POP, потому что оно связывает интерфейс HTTP с сервером электронной почты POP. Шлюз преобразует веб-транзакции в соответствующие транзакции POP, чтобы пользователь мог читать электронную почту через HTTP. Веб-программы электронной почты, такие как Yahoo! Почта и горячая почта MSN являются шлюзами электронной почты HTTP.

На практике разница между прокси и шлюзами нечеткая. Поскольку браузеры и серверы реализуют разные версии HTTP, прокси-серверы часто выполняют некоторое преобразование протокола. А коммерческие прокси-серверы реализуют функцию шлюза для поддержки протоколов безопасности SSL, брандмауэров SOCKS, доступа по FTP и веб-приложений.

Противоречат ли друг другу определения шлюза в двух источниках? Первый говорит, что проход шлюза получил запросы и ответы без изменений, а второй говорит, что шлюз соединяет стороны, которые говорят по разным протоколам и конвертируются между двумя протоколами? Как вы понимаете концепцию шлюза, согласовывая разницу между двумя определениями?

Ngnix может использоваться как обратный прокси-сервер, если прокси-сервер является сервером CGI, согласно официальный онлайн-документ. Обратный прокси-сервер - это прокси-сервер от первого источника, а от второго источника он обращается к двум сторонам, с которыми он соединяется, используя один и тот же протокол. Здесь Ngnix общается со своим клиентом, используя HTTP, и должен ли Ngnix также использовать HTTP или какой-либо другой протокол с сервером CGI?

Спасибо.

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

FastCGI - это небольшая вариация, в которой все передается в сценарий CGI с использованием потокового сокета и двоичного протокола. Сокет обычно является сокетом UNIX (таким образом, локальным), но также может быть обычным TCP / IP-соединением.