Publicado 3 de maio de 2024
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:
Vamos passo a passo entender como se configura o YARP (Yet Another Reverse Proxy) em uma aplicação ASP.NET Core 8.
1using Microsoft.Extensions.DependencyInjection;
2using Yarp.ReverseProxy.Configuration;
Importando os namespaces necessários para configurar e usar o YARP
1builder.Services.AddReverseProxy()
2 .LoadFromMemory(new[]
3 {
4 new RouteConfig
5 {
6 RouteId = "route1",
7 ClusterId = "cluster1",
8 Match = new RouteMatch
9 {
10 Path = "{**catch-all}"
11 }
12 }
13 },
14 new[]
15 {
16 new ClusterConfig
17 {
18 ClusterId = "cluster1",
19 Destinations = new Dictionary<string, DestinationConfig>
20 {
21 { "destination1", new DestinationConfig { Address = "<https://example.com>" } }
22 }
23 }
24 });
Aqui, estamos adicionando o serviço de proxy reverso do YARP ao contêiner de serviços da aplicação. Vamos detalhar cada parte:
AddReverseProxy()
: Adiciona os serviços necessários para o YARP.LoadFromMemory()
: Carrega a configuração do YARP diretamente da memória. Estamos passando duas configurações principais:RouteId
: Identificador único da rota.ClusterId
: Identificador do cluster ao qual esta rota está associada.Match
: Define como a rota deve ser correspondida. Aqui, {**catch-all}
significa que qualquer caminho será correspondido.ClusterId
: Identificador único do cluster.Destinations
: Um dicionário de destinos para o cluster. Cada destino tem um identificador e uma configuração de endereço. Neste caso, estamos direcionando para https://example.com
.1app.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.
1app.Run();
Finalmente, iniciamos a aplicação e começa a escutar por requisições HTTP.
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:
E para entender melhor sobre o conceito de proxy reverso e sua aplicação em diferentes cenários, recomendo os seguintes vídeos: