.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 配置即可,是不是非常的简单啊!我们看看实际效果:
并且在控制台中,也会产生相应的输出
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对的支持。如果你想了解更多相关内容请查看下面相关链接
相关文章:
1. ASP.NET MVC使用异步Action的方法2. 在Asp.net core项目中使用WebSocket3. ASP中实现字符部位类似.NET里String对象的PadLeft和PadRight函数4. 关于Jenkins + Docker + ASP.NET Core自动化部署的问题(避免踩坑)5. .Net Core和RabbitMQ限制循环消费的方法6. .NET 中配置从xml转向json方法示例详解7. .NET SkiaSharp 生成二维码验证码及指定区域截取方法实现8. .NET6打包部署到Windows Service的全过程9. ASP.NET泛型三之使用协变和逆变实现类型转换10. asp.net core项目授权流程详解