blog

YARP Reverse Proxy Diagram

YARP: Yet Another Reverse Proxy

No mundo da internet, a segurança e a performance dos sites são fundamentais para garantir uma boa experiência ao usuário. Para atingir esses objetivos, é comum utilizar ferramentas de proxy reverso, que permitem controlar o tráfego de rede e proteger os servidores originais de ataques mal-intencionados.

No entanto, a escolha da melhor ferramenta de proxy reverso pode ser uma tarefa desafiadora. Nesse sentido, YARP (Yet Another Reverse Proxy) surge como uma solução inovadora e escalável para atender às necessidades mais rigorosas.

O que é YARP?

YARP é um software de código aberto que fornece uma implementação de proxy reverso escalável e seguro. Foi desenvolvido pela Microsoft, em colaboração com a comunidade de desenvolvedores, e está disponível sob a licença MIT (Massachusetts Institute of Technology).

Características

YARP é uma ferramenta robusta e fácil de usar que oferece várias características únicas, incluindo:

Funcionalidades

YARP oferece uma ampla gama de funcionalidades, incluindo:

Vantagens

YARP oferece várias vantagens em relação às outras ferramentas de proxy reverso. Algumas das principais são:

Exemplo de Configuração do YARP em uma API ASP.NET Core 8

Vamos passo a passo entender como se configura o YARP (Yet Another Reverse Proxy) em uma aplicação ASP.NET Core 8.

1. Importações Necessárias

using Microsoft.AspNetCore.Builder;
using Microsoft.Extensions.DependencyInjection;
using Yarp.ReverseProxy.Configuration;

Esses using directives importam os namespaces necessários para configurar e usar o YARP e os serviços do ASP.NET Core.

2. Criação do Builder da Aplicação

var builder = WebApplication.CreateBuilder(args);

Aqui, estamos criando um WebApplicationBuilder, que é uma nova maneira de configurar e inicializar uma aplicação ASP.NET Core.

3. Adicionando Serviços do YARP

builder.Services.AddReverseProxy()
    .LoadFromMemory(new[]
    {
        new RouteConfig
        {
            RouteId = "route1",
            ClusterId = "cluster1",
            Match = new RouteMatch
            {
                Path = "{**catch-all}"
            }
        }
    },
    new[]
    {
        new ClusterConfig
        {
            ClusterId = "cluster1",
            Destinations = new Dictionary<string, DestinationConfig>
            {
                { "destination1", new DestinationConfig { Address = "<https://example.com>" } }
            }
        }
    });

Aqui, estamos adicionando o serviço de proxy reverso do YARP ao contêiner de serviços da aplicação. Vamos detalhar cada parte:

4. Construção da Aplicação

var app = builder.Build();

Aqui, estamos construindo a aplicação com base na configuração definida anteriormente.

5. Mapeamento do Middleware do YARP

app.MapReverseProxy();

Este método adiciona o middleware do YARP ao pipeline de processamento de requisições da aplicação. Isso significa que todas as requisições que correspondem à rota definida serão processadas pelo YARP e redirecionadas para o destino configurado.

6. Execução da Aplicação

app.Run();

Finalmente, este método inicia a aplicação e começa a escutar por requisições HTTP.

Resumo

Este código configura um proxy reverso simples usando YARP em uma aplicação ASP.NET Core 8. Ele define uma rota que captura todas as requisições ({**catch-all}) e as redireciona para https://example.com. O YARP é adicionado como um serviço e configurado para ser usado como middleware no pipeline de requisições da aplicação.

Conclusão

YARP é uma ferramenta inovadora e escalável de proxy reverso que oferece várias vantagens em relação às outras soluções. Com sua robusta implementação de segurança, flexibilidade e escalabilidade, YARP é uma escolha ideal para ambientes que necessitam de uma solução de proxy reverso confiável e eficiente.

Fonte: https://microsoft.github.io/reverse-proxy/

Recomendações

Para aprender mais sobre como usar o YARP, é recomendável assistir aos seguintes vídeos:

  1. “How To Build an API Gateway for Microservices with YARP” - https://www.youtube.com/watch?v=UidT7YYu97s
  2. “Introduction to YARP a .NET Reverse Proxy” - https://www.youtube.com/watch?v=EfVVvEtfgpI

E para entender melhor sobre o conceito de proxy reverso e sua aplicação em diferentes cenários, recomendo os seguintes vídeos:

  1. “Descubra como utilizar Proxy Reverso para proteger sua aplicação e melhorar a performance” - https://www.youtube.com/watch?v=E51dIa0ZcGs
  2. “Proxy vs Reverse Proxy (Real-world Examples)” - https://www.youtube.com/watch?v=4NB0NDtOwIQ