系列目录:

本系列分为项目集成、项目部署、架构演进三个方向,后续会根据情况调整文章目录。

开源地址:https://github.com/cyq1162/Taurus.MVC

本系列第一篇:Taurus.MVC V3.0.3 微服务开源框架发布:让.NET 架构在大并发的演进过程更简单。

Taurus.MVC 微服务框架 入门开发教程:项目集成:1、服务端:注册中心、网关(提供可运行程序下载)。

Taurus.MVC 微服务框架 入门开发教程:项目集成:2、客户端:ASP.NET Core(C#)项目集成:应用中心。

Taurus.MVC 微服务框架 入门开发教程:项目集成:3、客户端:其它编程语言项目集成:Java集成应用中心。

Taurus.MVC 微服务框架 入门开发教程:项目集成:4、默认安全认证与自定义安全认证。

Taurus.MVC 微服务框架 入门开发教程:项目集成:5、统一的日志管理。

Taurus.MVC 微服务框架 入门开发教程:项目集成:6、微服务间的调用方式:Rpc.StartTaskAsync。

Taurus.MVC 微服务框架 入门开发教程:项目部署:1、微服务应用程序常规部署实现多开,节点扩容。

Taurus.MVC 微服务框架 入门开发教程:项目部署:2、让Kestrel支持绑定多个域名转发,替代Ngnix使用。

Taurus.MVC 微服务框架 入门开发教程:项目部署:3、微服务应用程序版本升级:全站升级和局部模块升级。

Taurus.MVC 微服务框架 入门开发教程:项目部署:4、微服务应用程序发布到Docker部署(上)。

Taurus.MVC 微服务框架 入门开发教程:项目部署:5、微服务应用程序发布到Docker部署(下)。

Taurus.MVC 微服务框架 入门开发教程:项目部署:6、微服务应用程序Docker部署实现多开。

Taurus.MVC 微服务框架 入门开发教程:项目部署:7、微服务节点的监控。

Taurus.MVC 微服务框架 入门开发教程:架构演进:1、从单应用程序简单过渡到负载均衡。

Taurus.MVC 微服务框架 入门开发教程:架构演进:2、负载均到模块拆分负载。

Taurus.MVC 微服务框架 入门开发教程:架构演进:3、模块拆分负载到多级负载均衡。

Taurus.MVC 微服务框架 入门开发教程:运行示例:https://github.com/cyq1162/Taurus.MVC.MicroService.Demo

前言:

对于ASP.Net Core 项目,部署在Linux时,默认Kestrel不支持绑定域名。

对于需要绑定域名的,往往需要引入第三方,如:Nginx等配套使用。

而今天介绍的教程,则可以借Taurus.MVC 微服务架构的方式,直接替代Nginx使用。

下面看具体教程:

1、使用简单负载均衡架构模式:注册中心+应用中心

 

如果成为注册中心、或应用中心,可以看本系列第一篇,文章开头有链接。

2、注册中心:运行时绑定监听80端口:

说明:

1、绑定80端口,也即默认是接收所有的域名(只要解析到这个IP的80端口)

2、如果要绑定https,Kestrel是支持https和证书添加的。

3、注册中心默认也可以当网关使用的。

其appsettings.json配置项大约为:

{
  "AppSettings": {
    "MicroService.Server.Name": "RegCenter",//设置为服务端运行的:注册中心
    "Urls": "http://*:80"
  }
}

必要配置仅需要将微服务配置为注册中心,然后绑定80端口即可。

需要配置https证书的,下文后面补充了教程(2023-03-10)。

然后静静等待应用中心上门即可。

3、应用中心:模块注册名称填写要绑定的:域名即可。

说明:

1、配置客户端模块名称为需要绑定的域名,如:xxx.xxx.com

2、指定注册中心的地址。

其appsettings.json配置项大约为:

{
  
  "AppSettings": {
    "MicroService.Client.Name": "www.a.com",
    "MicroService.Client.RegUrl": "http://localhost:80",
"Urls": "http://*:0"
  }
}

这里内部仅配置http即可,因为它只与注册中心通讯,内部通讯无需要https。

结合上一篇教程:Taurus.MVC 微服务框架 入门开发教程:项目部署:1、微服务应用程序常规部署实现多开,节点扩容。

可以简单实现负载均衡,想开多少个,就运行启动.NET程序多少次,不需要修改任何配置。

4、多个域名多个项目:

重复步骤三即可,当然,注册中心(当前即网关)也需要部署相应的https证书。

5、运行演示结果示例:

流程:

1、注册中心监听5000端口。

2、应用中心注册www.a.com域名。

3、访问:www.a.com:5000的请求

运行结果:

 6:补充Https证书的使用:

仅需要把下载的证书和密码,以如下格式,放到默认目录App_Data/ssl下即可,后续由框架自行处理。

 

如果没有域名,无法创建证书,在本地开发过程,想体验https的效果。

则可以虚拟一个,以测试使用,以下为教程:

补充2:NETCore 开发环境使用OpenSSL创建https虚拟证书

证书通常的创建过程描述:

1、创建一个root根证书,然后导入系统环境中,让其成为可信任证书。

2、根据需要创建虚拟域名证书,用root根证书签名一下,然后可以分发给程序使用。

因此,该过程最少一共至少需要创建两个证书,每多一个域名可重复步骤2。

下面为使用OpenSSL创建https证书的过程: 

1、安装openssl:

下载地址:https://slproweb.com/products/Win32OpenSSL.html

本人默认安装版本:

 

 

一路安装,默认安装路径:C:\Program Files\OpenSSL-Win64

2、管理员身份运行cmd命令:

并切换到该bin目录下:cd C:\Program Files\OpenSSL-Win64\bin

3、生成证书过程(二合一方式,执行后,可以关注一下安装目录下产生的对应文件)

----------步骤一:只创建根证书密钥(Key文件,不创建根证书)-------------

命令:openssl genrsa -out root.key 2048

----------步骤二:1、创建域名签名中间件(CSR文件)---------------

命令:openssl req -new -key root.key -out www.sameples.com.csr

中间填写省市区等信息,随便填。

期间:Common Name,填写要绑定的域名,如:www.samples.com。

还有设置密码,如:123456

----------步骤二:2、创建域名证书(CER文件)---------------

命令:openssl x509 -req -days 365 -in www.sameples.com.csr -signkey root.key -out www.sameples.com.cer -extfile http.ext

可以在根目录下创建一个文件:http.ext,里面填写对应域名信息:

keyUsage = nonRepudiation, digitalSignature, keyEncipherment
extendedKeyUsage = serverAuth, clientAuth
subjectAltName=@SubjectAlternativeName
[ SubjectAlternativeName ]
DNS.1=www.samples.com

----------步骤二:3、转换域名证书格式(CER转PFX文件,方便程序使用)---------------

命令4:openssl pkcs12 -export -out www.samples.com.pfx -inkey root.key -in www.sameples.com.cer

然后输入2次密码,比如123456,即可创建该域名证书。

4:将证书导入可信任列表:

快捷键:Win+R,运行命令:

 

 在证书处右键导入,选择刚创建的证书(CER格式):导入即可。

5:添加Host文件,进行本地域名解析:

6:接下来即可用程序运行

可以放到iis运行试看,也可代码:

比如,代码下面演示多个证书使用方式:

运行成功:

提示说明:如果一开始没成功,下一次测试需要重启浏览器,否则https状态是不会变更的。

 

 网上有很多教程,中间也遇到过很多问题,唯一在本机环境能成功测试通过的,是以下教程:

参考教程:https://www.cnblogs.com/chenxf1117/p/15119692.html

其它未通过测试的教程如(泛域名的创建):

https://www.cnblogs.com/xiangyuecn/p/8365634.html

总结:

通过Taurus.MVC 微服务功能,以前Kestrel无法支持域名绑定的问题,就此实现了。

下一篇,讲述利用Taurus.MVC 微服务功能,如何实现轻松的版本升级功能。

posted on 2022-08-16 15:48  路过秋天  阅读(1447)  评论(3编辑  收藏  举报
路过秋天