.NET使用YARP根据域名转发实现反向代理

前段时间发布过一个关于 YARP 的简单介绍,感兴趣的小伙伴恭请移步看看.NET反向代理组件YARP介绍

作为反向代理,必不可少的当然是根据域名代理转发啦,毫无疑问,YARP 是支持通过域名代理转发的,本文将介绍如何在配置文件中进行域名的配置

首先,你得有一个域名,本地测试的话可以修改 host 文件,达到假装自己有域名的效果【手动狗头】,有些小伙伴可能不知道怎么设置域名、和怎么修改 host 文件,下面我简单说一下:

域名服务商

笔者手上只有一个域名,而且是华为云的,所以就拿华为云的作为介绍啦,其他的域名服务上都大同小异:

1、登录进入到 华为云-控制台,并展开左上角菜单,搜索 “域名”,点击进入到 “云解析服务 DNS”

2、点击 “公网域名”,然后找到需要进行解析的域名的对应操作栏,点击 “管理解析”

3、进入到 “管理解析” 页面后,点击右上角的 “添加记录集”,即可进行域名解析配置

配置说明:

主机记录:简单来说就是创建一个前缀,用于区分这个域名是干嘛的,例如我可以创建一个 test.ysmc.net.cn,表示我这个域名是用于测试的,我这么说只是为了方便理解,还是建议大家去查查正确的解析;

类型:A-将域名指向IPv4地址;

值:就是你要指向的具体IP是多少了,因为是测试用,这里直接指向了本地地址127.0.0.1;

至于其它的默认就好,需要注意的是,设置完后并非是立马起效果的,毕竟是需要更新缓存的,所以没生效不要紧

本地 hosts 文件

对于没有域名的小伙伴来说,可以通过修改本地 houst 文件,以达到同样拥有域名的状态,而且还不受限制,想起什么名字就什么名字,非常的 nice;

1、Win+R 打开 “运行” 对话框,输入 hosts文件所在目录路径:C:\WINDOWS\system32\drivers\etc ,当然,你也可以按照着路径,一个一个打开,找到 hosts 文件后,右键编辑就OK了

这里也有一点需要注意的,修改完成后,如果浏览器是处于打开状态,请关掉重新启动,不然是不会重新加载 hosts 文件的,切记切记!

我们分别创建两个域名解析,test1.ysmc.net.cn test2.ysmc.net.cn,然后开始我们今天的主题吧!

直接上配置文件

"ReverseProxy": {
  "Routes": {
    "baidu": {
      "ClusterId": "baidu",
      "Match": {
        "Hosts": [ "test1.ysmc.net.cn" ],
        "Path": "{**catch-all}"
      }
    },
    "blazor": {
      "ClusterId": "blazor",
      "Match": {
        "Hosts": [ "test2.ysmc.net.cn" ],
        "Path": "{**catch-all}"
      }
    }
  },
  "Clusters": {
    "baidu": {
      "LoadBalancingPolicy": "RoundRobin",
      "Destinations": {
        "baidu": {
          "Address": "https://www.baidu.com/"
        }
      }
    },
    "blazor": {
      "LoadBalancingPolicy": "RoundRobin",
      "Destinations": {
        "blazor": {
          "Address": "https://www.blazor.zone/"
        }
      }
    }
  }
}

看过我之前介绍 YARP 的文章的小伙伴可能已经发现了,想要实现 根据域名代理转发 这个功能,其实只需要在 Match 节点中,添加 Hosts 配置即可,是不是非常的简单啊!我们看看实际效果:

并且在控制台中,也会产生相应的输出

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对代码部落的支持。如果你想了解更多相关内容请查看下面相关链接

本文章来源于网络,作者是:一事冇诚,由代码部落进行采编,如涉及侵权请联系删除!转载请注明出处:https://daimabuluo.cc/asp-net/506.html

联系我们

在线咨询:点击这里给我发消息

邮件:dick@daimabuluo.cc

遇到问题?请给我们留言

请填写您的邮箱地址,我们将回复您的电子邮件