【愚公系列】2023年01月 .NET CORE工具案例-YARP反向代理

举报
愚公搬代码 发表于 2023/01/31 21:37:27 2023/01/31
【摘要】 前言 1.YARP是什么YARP (Yet Another Reverse Proxy) 是一个轻量级的 .NET 反向代理。它支持 HTTP 和 HTTPS 协议,可以将请求转发到其他服务器上。YARP 可以用于许多用途,包括加载平衡、内部网络隔离、隐藏内部服务器的 IP 地址等。它支持使用规则来转发请求,并且可以在转发请求时添加或修改 HTTP 头。YARP的github网址:http...

前言

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

在这里插入图片描述

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。