(文章目录) 前言 1.YARP是什么 YARP (Yet Another Reverse Proxy) 是一个轻量级的 .NET 反向代理。它支持 HTTP 和 HTTPS 协议,可以将请求转发到其他服务器上。 YARP 可以用于许多用途,包括加载平衡
(文章目录)
前言
1.YARP是什么
YARP (Yet Another Reverse Proxy) 是一个轻量级的 .NET 反向代理。它支持 HTTP 和 HTTPS 协议,可以将请求转发到其他服务器上。
YARP 可以用于许多用途,包括加载平衡、内部网络隔离、隐藏内部服务器的 IP 地址等。它支持使用规则来转发请求,并且可以在转发请求时添加或修改 HTTP 头。
YARP的github网址:https://github.com/microsoft/reverse-proxy
2.什么是反向代理
反向代理服务器位于用户与目标服务器之间,但是对于用户而言,反向代理服务器就相当于目标服务器,即用户直接访问反向代理服务器就可以获得目标服务器的资源。同时,用户不需要知道目标服务器的地址,也无须在用户端作任何设定。反向代理服务器通常可用来作为Web加速,即使用反向代理作为Web服务器的前置机来降低网络和服务器的负载,提高访问效率。--百度百科
一、YARP反向代理
1.安装包
Install-Package Yarp.ReverseProxy
2.注入
#region 配置反向代理
//其中ReverseProxy是appsettings的配置节点
builder.Services.AddReverseProxy()
.LoadFromConfig(builder.Configuration.GetSection("ReverseProxy"));
#endregion
#region 添加反向代理中间件
//添加中间件
app.MapReverseProxy();
#endregion
3.配置appsettings.json
在appsettings.json添加yarp的配置项,如下:
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
},
"AllowedHosts": "*",
"ReverseProxy": {
"Routes": {
"route1": {
"ClusterId": "yarp",
"Match": {
"Path": "{**catch-all}"
}
}
},
"Clusters": {
"yarp": {
"LoadBalancingPolicy": "RoundRobin",
"Destinations": {
"microsoft": {
"Address": "https://docs.microsoft.com/zh-cn/"
},
"github": {
"Address": "https://github.com/"
}
}
}
}
}
}
4.运行
访问该站点将随机反向代理到微软官网和github