Зачем нужен обратный прокси сервер в 5 актах

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

На текущий момент есть большое разнообразие обратных прокси серверов. Я перечислю только парочку из них.

  • Nginx

  • Envoy

  • HAProxy

  • Traefik

Также у каждого уважающего себя клауд провайдера есть свой прокси сервер.

  • AWS Elastic LoadBalancer

  • Google Cloud Load Balancer

  • DigitalOcean Load Balancer

  • Azure load balancer

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

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

И картинку прилепим для наглядности.

Какую проблему решают прокси сервера?

Акт первый

У нас есть веб-сайт, который не поддерживает HTTPS(т.к. общение по TLS/SSL не программировали). Сказать девелоперам запилить это - легко, а вот самим девелоперам может быть напряжно с реализацией. Если у нас приложение монолит - нам нужно внести изменения в этот, чаще всего не поворотливый агрегат, и доставить это на продакшн, если у нас легкие микросервисы, каждый надо посетить, в каждый надо внести небольшие правки + опять таки всё это доставить.

Как решаем проблему? Берем ничем не занятого SysOps/DevOps, говорим, что нам нужен https. Какой-тоOps ставит нам прокси сервер настраивает его на приём HTTPS трафика + SSL termination. Задача решена, цена решения: 1 Какой-тоOps.

Акт второй

Да осталось у нас то самое приложение, да сделали инженеры его чтобы оно могло масштабироваться горизонтально, да подняли аж две копии приложения. Супер! Как настроить так, чтобы трафик равномерно на оба поступал?

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

В итоге: двух зайцев, так сказать.

Акт третий

Взломали нас "хакеры", беда. Дать такому повториться - ну никак нельзя.

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

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

Акт четвертый

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

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

Чтож, лепим на уровне нашего прокси сервер сжатие запроса и кэшируем на нём ответы серверов приложения. Это что получается? Опять двух зайцев? Так точно!

Теперь запросы на холодную возвращаются быстрее некуда, а с кэшом, так и подавно.

Акт пятый

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

Новых функций в продакшн страдает доставка что если?

A/B тестирование можно настроить с прокси сервера помощью, что лучше может быть, чем отказ системы полный при багах в новом релизе? Правильно, у части пользователей только отказ.

После внедрения этой фичи, репутация вашего приложения не будет страдать так сильно, как страдала до внедрения A/B тестирования, т.к. негативные комментарии будут писаться только узким кругом "счастливчиков".

Суммируем выше сказанное

Функции которые предоставляют прокси-сервера:

  • Поддержка SSL/TLS трафика

  • SSL/TLS termination

  • Балансировка нагрузки

  • Проверка жизнеспособности целевых серверов

  • Сжатие содержимого

  • Кэширование запросов

  • Файрвол/DDoS-защита

  • A/B тестирование

Итого, добавляя в ваше приложение прокси сервер, ваша жизнь станет простой и понятной, вы познаете Дзен, начнёте больше общаться с близкими, наладится пищеварение и ...

Источник: https://habr.com/ru/post/538936/


Интересные статьи

Интересные статьи

Одна из самых важных (на мой взгляд) функций в Битрикс24 это бизнес-процессы. Теоретически они позволяют вам полностью избавиться от бумажных служебок и перенести их в эл...
Есть несколько способов добавить водяной знак в Битрикс. Рассмотрим два способа.
Прим. перев.: эту статью, в оригинале состоящую из двух частей, написал Kevin Yang — software engineer из компании Lyft, которая хорошо известна в Kubernetes-сообществе как минимум бл...
Когда я в очередной раз готовил для руководства аналитическую записку о нюансах перехода в публичное облако, то обратил внимание, что большая часть статей об облаках (даже на Хабре) написана ...
Решил сегодня поделиться с сообществом небольшой статьей, продолжающей знакомство с ортопедией и биомеханикой. Тема разговора – мениски коленного сустава. Что это такое, зачем они нужны, почему о...