Все статьи | Код

Защищает от хакерских атак и повышает производительность: что такое обратный прокси

Защищает от хакерских атак и повышает производительность: что такое обратный ... главное изображение

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

Это адаптированный перевод статьи «What is a reverse proxy? | Proxy servers explained» из блога компании Cloudflare.

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

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

Что такое прямой прокси

Прямой прокси или просто прокси — это сервер, который находится перед группой клиентских компьютеров. Когда они отправляют запросы к сайтам и сервисам в интернете, прокси-сервер выступает в роли посредника: перехватывает запросы, а затем связывается с веб-серверами от имени клиентов.

Вот так работа прямого прокси выглядит на схеме:

  • A — домашний компьютер пользователя
  • B — прямой прокси-сервер
  • C — сервер веб-сайта (где хранятся данные веб-сайта)

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

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

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

  • Другая сторона прокси — возможность ограничить доступ к тому или иному контенту. Пользователь в такой сети (например, школьной) сначала подключается к промежуточному серверу, а тот, в свою очередь, не принимает ответы от запрещенных сайтов (например, от Facebook и других сайтов социальных сетей).

  • Технология позволяет сохранять анонимность. Например, при использовании прокси настоящий IP-адрес автора комментария на форуме будет сложнее отследить. Вместо IP-адреса пользователя будет виден IP-адрес прокси-сервера.

Чем отличается обратный прокси?

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

Читайте также: Как сохранять фокус на протяжении всего обучения: советы от Хекслета

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

На схеме эта разница выглядит так:

  • D — домашний компьютер пользователя
  • E — обратный прокси-сервер
  • F — сервер веб-сайта

В обычной ситуации все запросы от D отправляются напрямую к F и наоборот.  С обратным прокси-сервером все запросы от D будут направляться непосредственно в E, а E будет отправлять свои запросы и получать ответы от F. E затем передаст соответствующие ответы D.

Преимущества такого подхода можно описать следующим образом:

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

  • Защита от атак. Обратный прокси позволяет исходным серверам не раскрывать свои IP адреса клиентам. Это значительно затрудняет проведение DDoS-атак: все запросы можно пропускать через прокси-сервер с более надежной системой защиты и большей мощностью по сравнению с основным сервером. Например, через сервер Cloudflare.

  • Глобальная балансировка нагрузки на сервер (GSLB). Этот подход предполагает распределение сайта по нескольким серверам, которые физически расположенны в разных странах мира. Обратный прокси отправляет запрос пользователя на сервер, который географически находится ближе к нему. Это уменьшает расстояние, которые необходимо преодолевать запросам и ответам, сводя к минимуму время загрузки.

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

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

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

Никогда не останавливайтесь: В программировании говорят, что нужно постоянно учиться даже для того, чтобы просто находиться на месте. Развивайтесь с нами — на Хекслете есть сотни курсов по разработке на разных языках и технологиях

Аватар пользователя Oleg Sabitov
Oleg Sabitov 21 апреля 2022
Рекомендуемые программы

С нуля до разработчика. Возвращаем деньги, если не удалось найти работу.

Иконка программы Фронтенд-разработчик
Профессия
Разработка фронтенд-компонентов веб-приложений
1 июня 10 месяцев
Иконка программы Python-разработчик
Профессия
Разработка веб-приложений на Django
1 июня 10 месяцев
Иконка программы PHP-разработчик
Профессия
Разработка веб-приложений на Laravel
1 июня 10 месяцев
Иконка программы Node.js-разработчик
Профессия
Разработка бэкенд-компонентов веб-приложений
1 июня 10 месяцев
Иконка программы Fullstack-разработчик
Профессия
Новый
Разработка фронтенд и бэкенд компонентов веб-приложений
1 июня 16 месяцев
Иконка программы Верстальщик
Профессия
Вёрстка с использованием последних стандартов CSS
в любое время 5 месяцев
Иконка программы Java-разработчик
Профессия
Разработка приложений на языке Java
1 июня 10 месяцев
Иконка программы Разработчик на Ruby on Rails
Профессия
Создает веб-приложения со скоростью света
1 июня 5 месяцев