asp.net-core – 如何在单个Service Fabric群集上托管具有唯一SS
我在Azure上有Service Fabric集群.我想使用此群集来托管多个基于ASP.NET Core的站点.所有站点都必须通过HTTPS(在端口443上)在Internet上访问.每个站点也在不同的域上运行,因此具有唯一的SSL证书.有些网站甚至拥有外卡证书.
我了解到使用WebListener是在Service Fabric上托管基于ASP.NET Core的站点的推荐方法.据我所知,WebListener应该支持通过使用请求HTTP标头来识别所请求的站点,将多个站点绑定到同一个端口.这很酷,但我没有找到有关如何将SSL证书绑定到站点(主机名)的信息.它甚至可能吗? 如果在使用WebListener时无法将证书绑定到特定站点,我不知道实现此目的的任何实际方法. 是否有人知道如何以最少的工作和费用(性能或基础架构成本)以新的站点添加到集群的方式解决此问题? 我想一种方法是为每个站点使用唯一端口,然后在Azure Load Balancer和/或Application Gateway上工作.这可能会使管理变得有点复杂甚至成本高昂(公共IP和应用程序网关并不完全免费). 解决方法
因此,刚刚开始使用新的ASP.Net Core WebSite,我可以看到program.cs文件包含.Net Core的特定ICommunicationListner实现.我将修改该侦听器上的以下方法,以允许您指定应用程序根目录,类似于默认的Owin通信侦听器对WebAPI所执行的操作.这将允许您将多个站点绑定到单个端口.
Task ICommunicationListener.OpenAsync(CancellationToken cancellationToken) { var endpoint = FabricRuntime.GetActivationContext().GetEndpoint(_endpointName); string serverUrl = $"{endpoint.Protocol}://{FabricRuntime.GetNodeContext().IPAddressOrFQDN}:{endpoint.Port}"; _webHost = new WebHostBuilder().UseWebListener() .UseContentRoot(Directory.GetCurrentDirectory()) .UseStartup() .UseUrls(serverUrl) .Build(); _webHost.Start(); return Task.FromResult(serverUrl); } 更改可能如下所示: string serverUrl = $"{endpoint.Protocol}://+{endpoint.Port}/{this.appRoot}"; 然后在服务清单文件中调整端点配置以在https和443上运行 <Endpoints> <Endpoint Protocol="https" Name="ServiceEndpoint" Type="Input" Port="443" /> </Endpoints> 然后在Service Fabric应用程序清单中添加证书(应该已经部署到VMS),使用指纹识别要使用的证书,如此. ????? 然后仍在应用程序清单中添加策略以将该证书绑定到服务的端点 <ServiceManifestImport> <ServiceManifestRef ServiceManifestName="Web1Pkg" ServiceManifestVersion="1.0.0" /> <ConfigOverrides /> <Policies> <EndpointBindingPolicy EndpointRef="ServiceEndpoint" CertificateRef="Cert1" /> </Policies> </ServiceManifestImport> 编辑: 编辑2:由于绑定如何与Web Listener一起使用,更新了服务URL以使用通配符 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – 测试ASP.NET MVC网站
- 【总结 Anchor-free1】Anchor-Free Keypoint方法总结以及思
- asp.net-mvc – 跨项目共享剃刀视图
- 绘制图表到ASP.NET MVC 4(Razor,C#)网站
- ASP.NET全局/静态存储?
- asp.net – 在Windows 7笔记本电脑中找不到IIS_IUSRS组
- asp.net – 在后面的代码中通过jquery添加列表框项的问题
- asp.net-mvc – 查找会话状态的所有使用
- asp.net-mvc – 用于对Office 365 AD进行身份验证的MVC
- ASP.NET MVC – 使用Reflection查找控制器是否存在
- asp.net-mvc-5 – 使用FormsAuthenticationTicke
- Asp.net mvc 知多少(八)
- 在ASP.NET中管理实体框架ObjectContext
- asp.net-core-mvc – 使用RedirectToAction传递T
- asp.net-mvc – MVC3 ModelBinding回收了一个带有
- asp.net-mvc – 如何在ASP.NET Web API中获取IpA
- asp.net-mvc-4 – Kendo UI组合框复位值
- asp.net – 在代码中设置PageSize时,DataPager停
- ASP.NET Core Identity核心知识
- asp.net-mvc-3 – 单元测试一个文件上传,怎么样?