Ir para o conteúdo do rodapé
Iron Academy Logo
Aprenda C#
Aprenda C#

Outras categorias

Introdução ao YARP em C# - Como criar um proxy reverso

Tim Corey
52m 31s

Quando se trata de gerenciar o tráfego da web de forma eficiente em um ambiente .NET Core , um proxy reverso se torna uma ferramenta indispensável. YARP, abreviação de Yet Another Reverse Proxy (Mais um Proxy Reverso), é o projeto de proxy reverso altamente flexível e personalizável da Microsoft, desenvolvido especificamente para o ecossistema .NET . Neste artigo, vamos explorar em detalhes os primeiros passos com o YARP, seguindo o tutorial completo de Tim Corey, " Introdução ao YARP em C# - Como Criar um Proxy Reverso ", onde ele demonstra a configuração e o uso do YARP em uma aplicação web .NET Core .

Vamos começar com uma introdução ao YARP e como você pode aproveitar essa estrutura de proxy em seus próprios projetos.

O que é um proxy reverso?

À 1:07, Tim explica que um proxy reverso fica entre o cliente (usuários) e os servidores de back-end, gerenciando as solicitações de entrada e roteando-as de forma eficiente para o destino apropriado.

Tim, em 1:45, explica por que um proxy é importante: não apenas para balanceamento de carga, mas também para simplificar os cabeçalhos de requisição, proteger conexões com HTTPS e garantir que os serviços de backend estejam isolados do acesso direto. Ao usar um proxy reverso, você pode dimensionar seus aplicativos .NET Core facilmente sem expor sua estrutura interna.

Introdução ao YARP

Às 5h11, Tim apresenta o YARP — Yet Another Reverse Proxy (Mais um Proxy Reverso). Tim explica que a Microsoft percebeu a necessidade de uma estrutura de proxy mais adequada às necessidades específicas de sua ampla gama de aplicativos .NET , o que levou à criação do YARP. Ele foi projetado para ser uma biblioteca que fornece a funcionalidade principal de proxy de forma modular, robusta e extensível.

Getting Started With Yarp In Csharp 1 related to Introdução ao YARP

Esta biblioteca está em desenvolvimento ativo, garantindo que inclua os recursos mais recentes e suporte as tecnologias mais modernas, como Linux, Windows e ambientes em nuvem.

Além disso, Tim destaca a documentação completa e atualizada disponível para o YARP, o que facilita muito o início para novos desenvolvedores.

Como configurar um projeto YARP básico

Às 6h14, Tim inicia um novo projeto no Visual Studio usando o SDK .NET. Ele cria um projeto básico de API Web ASP.NET Core chamado Pessimistic API .

Getting Started With Yarp In Csharp 2 related to Como configurar um projeto YARP básico

Às 7h02, Tim modifica o projeto para criar uma API pessimista que simula um serviço meteorológico para clima frio. Esta aplicação simples em .NET Core serve como servidor backend para o qual o YARP fará o proxy posteriormente.

Tim sugere, às 8h44, verificar o projeto antes de prosseguir, garantindo que o serviço de exemplo responda corretamente às solicitações em /weatherforecast.

Criando o Gateway YARP

Às 9h04, Tim cria um projeto ASP.NET Core vazio chamado YarpGateway . Este projeto funciona como um proxy reverso.

Tim demonstra como instalar o pacote necessário acessando "Gerenciar Pacotes NuGet" e pesquisando por "instalar pacote YARP" (aos 10:24). Isso utiliza o YARP Reverse Proxy, a biblioteca oficial que fornece a funcionalidade principal de proxy necessária.

Configurando o YARP

Às 12:02, Tim demonstra como configurar o YARP dentro do arquivo Program.cs usando:

builder.Services.AddReverseProxy().LoadFromConfig(builder.Configuration.GetSection("YARP"));
builder.Services.AddReverseProxy().LoadFromConfig(builder.Configuration.GetSection("YARP"));

Esta configuração carrega arquivos de configuração que definem as rotas e os clusters — elementos fundamentais ao usar o YARP para rotear solicitações.

As rotas correspondem ao caminho de entrada e os clusters definem os serviços de backend para os quais encaminhar os dados. Essa configuração modular permite adicionar recursos avançados, como limitação de taxa, substituição de módulos e ajuste fino do gerenciamento de caminhos.

Tim destaca que esse design flexível é o que torna o YARP um proxy reverso altamente personalizável, adequado para projetos do mundo real.

Testando a configuração básica de proxy

Às 20h02, Tim mostra a execução simultânea da API Pessimista de backend e do YarpGateway .

Ao acessar o URL do gateway /weatherforecast, o YARP encaminha a solicitação recebida para o servidor de backend, busca a resposta e a exibe — sem expor o URL interno. Isso demonstra a funcionalidade de proxy e o roteamento de solicitações em ação.

Expandindo com um segundo backend

Às 21h17, Tim adiciona um novo projeto chamado Optimistic API , que retorna apenas temperaturas amenas.

Ele configura o YARP com múltiplos destinos dentro de um único cluster. Isso possibilita o balanceamento de carga — distribuindo as solicitações recebidas aleatoriamente entre dois servidores de backend.

Mais tarde, aos 26:26, Tim explica que é possível personalizar ainda mais a estratégia de balanceamento de carga, incluindo opções como round robin ou lógica personalizada com base nos atributos da solicitação.

Atualizando um site estático com YARP

Aos 28:12, Tim descreve um exemplo do mundo real: a atualização de seu próprio site (iamtimcorey.com).

Ele cria um aplicativo web WebsiteUpgrade em .NET Core que encaminha todo o tráfego para o site original usando uma rota genérica .

Getting Started With Yarp In Csharp 3 related to Atualizando um site estático com YARP

Essa estratégia permite atualizações incrementais: Tim pode reconstruir e modernizar páginas usando o Razor , mantendo o suporte ao conteúdo antigo fornecido pelo sistema legado. As solicitações recebidas são automaticamente encaminhadas para o site original ou para o novo conteúdo, dependendo do caminho.

Adicionando novas funcionalidades com Razor Pages

Aos 34:30, Tim adiciona o Razor Pages ao projeto de atualização. Ele mostra como adicionar uma página simples (/more) que é servida diretamente pelo novo aplicativo, enquanto todo o resto é acessado por proxy.

Graças à flexibilidade do YARP, novos módulos e funcionalidades podem ser adicionados sem interromper os serviços de backend existentes.

Implementando roteamento avançado e transformações de caminho

Aos 39:03, Tim cria uma rota /random que reescreve o caminho e redireciona os usuários aleatoriamente entre três páginas de cursos diferentes.

Ele utiliza o recurso de transformações do YARP para modificar cabeçalhos e caminhos de requisição durante o proxy, mostrando como os desenvolvedores podem ajustar o comportamento para necessidades específicas.

Tim encontra um erro de digitação por volta dos 44:03, mas o corrige, enfatizando a importância de prestar atenção aos arquivos de configuração.

Configuração do balanceamento de carga Round Robin

Às 45:10, Tim muda o roteamento aleatório para round robin. Essa simples alteração de configuração melhora a previsibilidade na distribuição do tráfego entre várias páginas.

Getting Started With Yarp In Csharp 4 related to Configuração do balanceamento de carga Round Robin

Isso destaca uma das principais características do YARP: a facilidade de personalizar comportamentos dinamicamente apenas por meio de configuração, sem alterações profundas no código.

Conclusão: Por que escolher o YARP?

Aos 47:03, Tim conclui resumindo por que o YARP é uma ferramenta essencial para aplicações .NET Core modernas:

  • Foi projetado como uma biblioteca para facilitar a integração.

  • Ele fornece a funcionalidade principal de proxy que os desenvolvedores precisam.

  • Está em desenvolvimento ativo pela Microsoft.

  • Ele oferece suporte nativo para Linux, Windows e HTTPS.

  • Possui documentação extensa e abrangente, com manutenção constante.

  • Permite encaminhar solicitações de forma flexível para vários servidores de backend.

  • Permite fácil personalização para necessidades específicas.

  • É de nível de produção, escalável e otimizado para desempenho.

Tim incentiva os espectadores a explorarem ainda mais recursos, como limitação de taxa, substituição de módulos e configurações mais avançadas de gateway de API, seguindo a documentação oficial ou sugerindo um curso completo de YARP.

Considerações finais

Seguindo o vídeo completo de Tim Corey sobre como configurar um proxy reverso YARP, qualquer desenvolvedor pode rapidamente se familiarizar com mais um proxy reverso. Seja para lidar com balanceamento de carga complexo, substituir módulos ou atualizar seu site incrementalmente, o YARP Yet Another Reverse Proxy oferece uma solução sólida e flexível para o mundo .NET Core. Não deixem de conferir o canal dele no YouTube para mais vídeos interessantes.

Hero Worlddot related to Introdução ao YARP em C# - Como criar um proxy reverso
Hero Affiliate related to Introdução ao YARP em C# - Como criar um proxy reverso

Ganhe mais compartilhando o que você ama.

Você cria conteúdo para desenvolvedores que trabalham com .NET, C#, Java, Python ou Node.js? Transforme sua expertise em renda extra!

Equipe de suporte de ferro

Estamos online 24 horas por dia, 5 dias por semana.
Bater papo
E-mail
Liga para mim