乌市泽哥 发表于 2022-9-17 08:37:06

.NET 反向代理-YARP

什么是 YARP

YARP (另一个反向代理) 设计为一个库,提供核心代理功能,你可以根据应用程序的特定需求进行自定义。
YARP 是使用 .NET的基础架构构建在 .NET上的。
YARP 的主要不同之处在于,它被设计成可以通过 .NET 代码轻松定制和调整,以满足每个部署场景的特定需求。
同时,YARP是一个开源项目,托管于 Github 上,开源地址 https://github.com/microsoft/reverse-proxy
什么是反向代理

反向代理服务器是代理服务器中的一种,它是在Web服务器之前实现的,并将客户端请求定向到特定的后端服务器。通常,反向代理有助于提高Web服务器的安全性和性能,并防止过载。
https://img2022.cnblogs.com/blog/1897432/202209/1897432-20220907142215010-1140835852.png
反向代理作用

1.负载平衡。通常,拥有许多日常用户的网站无法使用一个原始服务器处理所有流量。因此,网站会在不同后端服务器的群集之间均衡分配用户流量。这些服务器管理同一网站的客户端请求。
此外,反向代理可以避免任意单个服务器过载,因为所有站点的流量都必须通过反向代理。只有这样,流量才能访问特定的后端服务器。
2.保护免受黑客攻击。如果网站使用反向代理,则其服务器的地址将被隐藏,黑客只能访问代理IP地址。这对黑客和恶意实体起到了一定的防护。
例如:对使用反向代理的网站进行分布式拒绝服务(DDoS)攻击要困难得多。DDoS攻击是通过破坏主机服务与互联网的连接,从而使用户无法访问该网站。
当网站使用反向代理时,黑客将只能攻击这些代理,这将作为附加的安全层。
3.缓存。缓存使网站可以有效地重用以前获得的数据。这是将文件副本存储在缓存中以便更迅速地访问的过程。这使网站和应用程序可以更高效地运行。
反向代理服务器可用于缓存网站的内容并提高网站的性能。
如何使用YARP

YARP是基于.Net架构的一个库,其提供了核心代理功能,而又因为 .Net Core 是跨平台的,所以可以应用在 windows 于 linux 上;
既然是一个库,首先第一步肯定是创建一个新项目,并且安装上这一个库:
1、创建一个空的.Net Core 项目
https://img2022.cnblogs.com/blog/1897432/202209/1897432-20220907121904049-1420950514.png
 
 
 
2、在NuGet包管理器中,安装 Yarp.ReverseProxy
https://img2022.cnblogs.com/blog/1897432/202209/1897432-20220907122059516-1389697182.png
 
 
 或者使用 dotnet 命令安装
dotnet add package Yarp.ReverseProxy --version 1.1.13、在 Program.cs 中增加配置,.Net 5 及以下版本在 Startup.cs 中添加
Program.cs 
var reverseProxyConfig = builder.Configuration.GetSection("ReverseProxy");
builder.Services.AddReverseProxy().LoadFromConfig(reverseProxyConfig);app.UseEndpoints(endpoints =>
{
    endpoints.MapReverseProxy();
});Startup.cs
- ConfigureServices
services.AddReverseProxy().LoadFromConfig(Configuration.GetSection("ReverseProxy"));- Configure
app.UseEndpoints(endpoints =>
{
    endpoints.MapReverseProxy();
});4、在 appsetting 中添加 ReverseProxy 节点以及配置项
"ReverseProxy": {
"Routes": {
    "route1": {
      "ClusterId": "yarp",
      "Match": {
      "Path": "{**catch-all}"
      }
    }
},
"Clusters": {
    "yarp": {
      "LoadBalancingPolicy": "RoundRobin",
      "Destinations": {"blazor": {
          "Address": "https://www.blazor.zone/"
      },
      "baidu": {
          "Address": "https://www.baidu.com/"
      }
      }
    }
}
}大功告成,可以愉快玩耍了!感谢各位大佬的阅读!
原文链接:https://www.cnblogs.com/ysmc/p/16665788.html
写在最后

Bootstrap Blazor 官网地址:https://www.blazor.zone
  希望大佬们看到这篇文章,能给项目点个star支持下,感谢各位!
star流程:
1、访问点击项目链接:BootstrapBlazor   https://gitee.com/LongbowEnterprise/BootstrapBlazor/badge/star.svg?theme=gvp
2、点击star,如下图,即可完成star,关注项目不迷路:
https://img2022.cnblogs.com/blog/1897432/202204/1897432-20220403224815990-1645909476.png
 
另外还有两个GVP项目,大佬们方便的话也点下star呗,非常感谢:
  BootstrapAdmin 项目地址:https://gitee.com/LongbowEnterprise/BootstrapAdmin/badge/star.svg?theme=gvp
  https://gitee.com/LongbowEnterprise/BootstrapAdmin

  SliderCaptcha 项目地址:https://gitee.com/LongbowEnterprise/SliderCaptcha/badge/star.svg?theme=gvp
  https://gitee.com/LongbowEnterprise/SliderCaptcha
 
交流群(QQ)欢迎加群讨论
       BA & Blazor ①(795206915)          BA & Blazor ②(675147445)
https://img2022.cnblogs.com/blog/1897432/202204/1897432-20220403225036952-1976037800.pnghttps://img2022.cnblogs.com/blog/1897432/202204/1897432-20220403225055624-841710730.png

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
页: [1]
查看完整版本: .NET 反向代理-YARP