.NET 反向代理-YARP 根据域名转发

编者:

      fastgithub 就是基于YARP使用域名做转发逻辑的。     

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

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

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

域名服务商

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

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

0b2d43f3c476905b856f26b7c17c210c.png

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

0ad842426bc632f1fd2b9804dedc4e4f.png

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

156c2132e8c615191b525d66fd30cbfe.png

 913f1a2a9e3081df5ebda81dcd498595.png

 配置说明:

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

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

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

  至于其它的默认就好,需要注意的是,设置完后并非是立马起效果的,毕竟是需要更新缓存的,所以没生效不要紧,可以先泡上一杯茶,或者说office【手动狗头】

本地 hosts 文件

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

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

 bccc9bc653c9c58888e93d34add8d13b.png

 86d36ee0eac8e288c258f933dce80512.png

  这里也有一点需要注意的,修改完成后,如果浏览器是处于打开状态,请关掉重新启动,不然是不会重新加载 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 配置即可,是不是非常的简单啊!我们看看实际效果:

746129864e1399d34aa4541715140573.png

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

7272e0f68c477c2d4ee21e437bfa4180.png

   好了,本次介绍到此结束,感谢各位大佬的阅读!

原文链接:https://www.cnblogs.com/ysmc/p/16714201.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/282460.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

第一个python小游戏

guess int(input("猜一猜宝宝心目中的数字是多少:")) secret 8 while guess !secret:guess int(input("哎呀猜错了,重新猜一猜宝宝心目中的数字是多少:"))if guess secret:print("你真厉害,居然猜对了")print("哼,猜对了也不给你奖励&q…

理论实践:循序渐进理解AWR细致入微分析性能报告

1. AWR 概述 Automatic Workload Repository(AWR) 是10g引入的一个重要组件。在里面存贮着近期一段时间内(默认是7天)数据库活动状态的详细信息。 AWR 报告是对 AWR 视图进行查询而得到的一份自动生成的报告。可以通过下面的脚本手工得到一份 AWR 报告。…

mysql sql语句书写之面试部分

要求一 :查询时,将用户的手机号码(比如1331234567)显示为133***4567 这是在交流群里看到别人发的一个面试题,我本人非常反感直接在查询时进行处理数据的,查询出来再处理不好吗,但是面试题要求是这样. 这里,简单的写了两个表关联查询,然后把手机号码进行处理显示出来select a.ui…

Redis --数据类型 [1]

一 string 类型 (最简单常用的类型) string是redis最基本的类型,你可以理解成与Memcached一模一样的类型,一个key对应一个value。二 Hash类型(哈希) Redis hash是一个string类型的field和value的映射表,hash特别适合用于存储对象。三 List(列…

KestrelServer详解[3]: 自定义一个迷你版的KestrelServer

和所有的服务器一样,KestrelServer最终需要解决的是网络传输的问题。在《KestrelServer详解[2]: 网络连接是如何创建的?》,我们介绍了KestrelServer如何利用连接接听器的建立网络连接,并再次基础上演示了如何直接利用建立的连接接…

c# 文件下载

这样的下载方式 减少服务器的压力, 还有一种省懒劲的方式:后端在iis上配置一个虚拟目录,然后让前端自己拼url地址下载, 这个东西是给后期其他工作人员埋坑,哈哈。 本帖原文转自与 农码一生转载于:https://www.cnbl…

Redis -- 基础操作 [2]

一 获取redis当前数据库符合条件键名 [keys pattern]二 设置string形式key-value [set key value]三 获取存储在指定 key 中字符串的子字符串 [GETRANGE KEY start end]四 删除指定键值对 [del key]五 为给定key设置过期时间 [Expire KEY SECONDS]注: Expireat KEY TIMESTAMP 同…

Centos7作为VNCserver,本地使用VNCViewer连接

1.概念 VNC是一个远程连接工具 VNC is used to display an X windows session running on another computer. Unlike a remote X connection, the xserver is running on the remote computer, not on your local workstation. Your workstation ( Linux or Windows ) is only …

在URL中实现简易的WebAPI验签

本文主要介绍一种与微信公众平台对接方式类似的,为 AspNetCore 提供的一种简易的 WebAPI 签名验证中间件。本文相关源码和案例已开源,地址:https://github.com/sangyuxiaowu/SignAuthorization原理说明简易的 API url 签名验证中间件&#xf…

Redis -- Hash(哈希) [3]

Redis Hash 是一个string类型的field和value的 映射表 ,hash特别适合用于存储对象。 注 : Redis 中每个 hash 可以存储 232 - 1 键值对(40多亿)。 比如这样:注:在此,首先推荐一款redis可视化工具 https://redisdesktop.com/download , 是非常…

HBuilder 打包流程

1.运行HBuilder---百度搜索HBuilder,官网下载安装包,解压,运行HBuilder.exe。注册账号,并登陆 2.新建app---在左边右键,选择新建APP,或者,点击中间的新建app 3.在弹出的窗口,填入应用…

Python3——字典

Python 字典(Dictionary) 字典是另一种可变容器模型,且可存储任意类型对象。 字典的每个键值(key>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 定义字典 d {} d {key1 : value1, key2 : value2 } d di…

科技以换皮为本:路遥工具箱 V4 版本发布

作为定位“开发辅助”的工具,我也一直在想如何让工具更有效率。是更快的打开速度还是更丰富的功能?路遥工具箱 V3 版本的界面布局是偏 BS 后台系统的风格:可折叠的树形菜单用来拓宽用户的操作区域,多标签的功能布局让软件保持整洁…

myisam数据表根据frm文件恢复数据表

有时,我们重装mysql时,可能忘记备份数据了, 只留下了之前的mysql下面的data文件夹里的数据, 这时我们应该如何去恢复数据表呢 如果直接将原来的data目录导进现在的mysql,肯定是不行的,其实很简单 我们常用的数据表结构有myisam和innodb,这两种数据表恢复数据的方式是不一样的,这…

本文主要总结关于mysql的优化(将会持续更新)

2019独角兽企业重金招聘Python工程师标准>>> ON DUPLICATE KEY UPDATE 事件背景 在阅读公司原来代码的过程中,我发现了这样一段代码: $sql "INSERT INTO {$table} ({$fields}) VALUES " . $values; if (!empty($onDuplicate)) {$sql . ON DU…

ASP.NET Core 在 IIS 下的两种部署模式

KestrelServer最大的优势体现在它的跨平台的能力,如果ASP.NET CORE应用只需要部署在Windows环境下,IIS也是不错的选择。ASP.NET CORE应用针对IIS具有两种部署模式,它们都依赖于一个IIS针对ASP.NET CORE Core的扩展模块。一、ASP.NET CORE Cor…

navicat连接远程mysql

环境介绍: 这里,我连接的是阿里云的服务器,自己搭的环境,用的是mysql 5.7一 首先第一步,需要进入远程服务器的mysql,更改host访问权限 然后,将root允许访问的host 改为%(任何ip地址都可以访问) 注: 原来是只允许本地访问二 本地用navicat连接远程mysql 1. 常规部分填写2. SSH部…

面向对象五大设计原则

最近在看七牛云许式伟的架构课, 重温了面向对象五大设计原则(SOLID),扣理论文字找出处。(当然许老板是不可能深聊这么低级的内容,🤡)注意区分设计原则和设计模式。设计原则更为抽象和泛化;设计模式也是抽象…

谷歌F12调试公众号时,让鼠标显示出来

yi 环境介绍: win10 , 谷歌浏览器yii 概述: 在项目中,需要调试公众号,本地环境搭好之后,在谷歌浏览时,发现移动到公众号区域,鼠标居然不见了,这让我怎么操作?各种操作可谓是日了狗了,非常麻烦yiii 调试时鼠标不见的解决办法: 网上各种说法众说纷纭,这里,我给出本人认为最恰当简…

利用bootstrap插件设置时间

$("#"id_rand" .shijian-input").each(function () { $(this).datetimepicker({ lang:"ch", //语言选择中文 注:旧版本 新版方法:$.datetimepicker.setLocale(ch); format: "hh : ii", /…