Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Общие сведения о YARP
YARP (еще один обратный прокси-сервер) — это настраиваемая библиотека обратного прокси-сервера для .NET. Он предназначен для обеспечения надежной, гибкой, масштабируемой, безопасной и простой для использования прокси-платформы. YARP помогает разработчикам создавать эффективные и эффективные решения обратного прокси-сервера, адаптированные к конкретным потребностям.
Что делает обратный прокси-сервер
Обратный прокси-сервер — это сервер, который находится между клиентскими устройствами и внутренними серверами. Он перенаправляет клиентские запросы на соответствующий сервер серверной части, а затем возвращает ответ сервера клиенту. Обратный прокси-сервер обеспечивает несколько преимуществ:
- Маршрутизация: направляет запросы на разные серверные серверы на основе предопределенных правил, таких как шаблоны URL-адресов или заголовки запросов. Например, запросы
/images
,/api
и/db
можно направлять на серверы изображений, API и баз данных. - Балансировка нагрузки. Распределяет входящий трафик между несколькими внутренними серверами, чтобы предотвратить перегрузку определенного сервера. Распределение повышает производительность и надежность.
- Масштабируемость. Путем распределения трафика между несколькими серверами обратный прокси-сервер помогает масштабировать приложения для обработки большего количества пользователей и более высоких нагрузок. Серверные серверы масштабируются (добавлены или удалены) без влияния на клиент.
- Завершение SSL/TLS: снимает процессы шифрования и расшифровки TLS с внутренних серверов, уменьшая их рабочую нагрузку.
- Абстракция подключения, разделение и управление пространством URL-адресов: исходящие запросы от внешних клиентов и исходящие ответы из серверной части являются независимыми. Эта независимость позволяет отличаться:
- Версии HTTP, ie, HTTP/1.1, HTTP/2, HTTP/3. Прокси-сервер может обновлять или уменьшать версии HTTP.
- Время существования подключения, которое позволяет иметь длительные подключения на серверной части при сохранении коротких клиентских подключений.
- Управление пространством URL-адресов. Перед перенаправлением в серверную часть можно преобразовать входящие URL-адреса. Это абстрагирует внешние URL-адреса от того, как они сопоставляются с внутренними службами. Внутренние конечные точки службы могут изменяться без влияния на внешние URL-адреса.
- Безопасность: внутренние конечные точки службы могут быть скрыты от внешнего воздействия, защищая от некоторых типов кибератак, таких как атак DDoS.
- Кэширование. Часто запрашиваемые ресурсы можно кэшировать, чтобы уменьшить нагрузку на внутренние серверы и повысить время отклика.
- Управление версиями. Различные версии API могут поддерживаться с помощью различных сопоставлений URL-адресов.
- Упрощенное обслуживание: обратные прокси-серверы могут обрабатывать терминацию SSL/TLS и другие задачи, упрощая настройку и обслуживание бекенд-серверов. Например, SSL-сертификаты и политики безопасности можно управлять на обратном уровне прокси-сервера, а не на каждом отдельном сервере.
Как обратный прокси-сервер обрабатывает HTTP
Обратный прокси-сервер обрабатывает HTTP-запросы и ответы следующим образом:
- Получение запросов: обратный прокси-сервер прослушивает указанные порты и конечные точки для входящих HTTP-запросов от клиентов.
- Завершающие подключения: входящие HTTP-подключения завершаются на прокси-сервере, а новые подключения используются для отправки исходящих запросов к целевым адресатам.
- Запросы маршрутизации. На основе предопределенных правил и конфигураций маршрутизации обратный прокси-сервер определяет серверный сервер или кластер серверов, который должен обрабатывать запрос.
- Перенаправление запросов: обратный прокси-сервер перенаправляет запрос клиента на соответствующий сервер серверной части, преобразуя путь и заголовки по мере необходимости.
- Пул подключений: Исходящие соединения объединяются в пул для снижения затрат на подключение и обеспечения эффективного повторного использования соединений в HTTP 1.1, а также обработки параллельных запросов с использованием возможностей HTTP/2 и HTTP/3.
- Обработка ответов: сервер обработчика обрабатывает запрос и отправляет ответ обратному прокси-серверу.
- Возвращая ответы: обратный прокси-сервер получает ответ от серверного сервера и перенаправляет его обратно клиенту, выполняя все необходимые преобразования ответа.
Этот процесс гарантирует, что клиент взаимодействует с обратным прокси-сервером, а не напрямую с серверными серверами, обеспечивая преимущества балансировки нагрузки, безопасности, управления версиями и многое другое.
Почему выбрать YARP вместо других прокси-серверов
YARP предлагает несколько уникальных преимуществ, которые делают его привлекательным выбором для разработчиков:
- Настройка: YARP очень настраивается, позволяя разработчикам адаптировать прокси-сервер к конкретным потребностям с минимальными усилиями.
- Интеграция с .NET: основанная на ASP.NET Core, YARP легко интегрируется с экосистемой .NET, что делает его идеальным выбором для разработчиков .NET.
- Расширяемость: YARP предоставляет широкий набор точек расширяемости, что позволяет разработчикам добавлять пользовательские логики и функции при необходимости, используя знакомый код C#.
- Масштабируемость. Опция расширения прямой маршрутизации позволяет YARP масштабироваться для поддержки возможностей масштабирования доменных имён и серверов, которые недоступны для большинства обратных прокси-серверов.
- Активная разработка: YARP активно поддерживается и разрабатывается корпорацией Майкрософт, гарантируя, что она остается up-toв ногу с новейшими технологиями и лучшими практиками.
- Полная поддерживаемая документация: YARP поставляется с обширной документацией и примерами, что упрощает начало работы и реализацию расширенных функций.
- Открытый исходный код. Документация YARP и сам YARP являются проектами с открытым исходным кодом. Вклады, отзывы и обратная связь приветствуются.
ASP.NET Core