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

Читать в полной версии →

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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