c# - 使用 Service Fabric 的 Owin 基于主机名的站点

标签 c# azure owin azure-service-fabric self-hosting

我在使用 Service Fabric 和 OWIN 在不同子域上托管多个网站时遇到问题。

假设我的 Service Fabric 云上有四个 HTTP(S) 服务器。它们每个都在不同的端口上运行。所以在它们初始化的某个时刻,它们将分别调用:

  1. Microsoft.Owin.Hosting.WebApp.Start("http://+:80/", UnsecureStartup);
  2. Microsoft.Owin.Hosting.WebApp.Start("https://+:443/", MainStartup);
  3. Microsoft.Owin.Hosting.WebApp.Start("https://+:4431/", ApiStartup);
  4. Microsoft.Owin.Hosting.WebApp.Start("https://+:4432/", ExtrasStartup);

这一切都运行良好。所有请求均已成功满足。所有四个端口都为在各自的无状态服务中分配给它们的初创公司提供服务,HTTPS 端口以正确的 Service Fabric 方式使用从 ServiceManifest.xml 设置的相同证书。 Here's a similar single-server setup .

我们一直计划使用子域而不是不同的端口。现在我们有了自己的域名,我们正在尝试执行以下操作:

  1. Microsoft.Owin.Hosting.WebApp.Start("http://example.com:80/", UnsecureStartup);
  2. Microsoft.Owin.Hosting.WebApp.Start("https://example.com:443/", MainStartup);
  3. Microsoft.Owin.Hosting.WebApp.Start("https://api.example.com:443/", ApiStartup);
  4. Microsoft.Owin.Hosting.WebApp.Start("https://extras.example.com:443/", ExtrasStartup);

上面的代码确实运行了。所有四个无状态服务都会在 Service Fabric Explorer 中启动并变为绿色。然而,每个请求(对于 http:80https:445)都会得到相同的响应:

Service Unavailable

HTTP Error 503. The service is unavailable.

如果我无法根据主机名选择一个服务器,为什么 Service Fabric 允许我们拥有多个 Owin 服务器,即使是在同一端口上?有谁知道我们如何才能做到这一点?

非常感谢任何帮助。

最佳答案

据我了解,主机名不适用于 SF。 据我所知,您有以下选择:

1) 您在内部服务上使用不同的端口,并在 SF 集群前面放置一个 WAF,并让该 WAF 处理到您的内部端口的 SSL 卸载、URL 路由和 NAT。这样您只需要 1 个公共(public) IP。

2) 您添加更多公共(public) IP,并让您的公共(public)负载平衡来处理它。为此,您将需要 3 个 IP 地址,但由于前 5 个 IP 在 azure 中是免费的,因此您不会花费任何额外费用。

您可能想要使用选项 1,因为它可以让您更轻松地管理证书、更好的安全性和更大的灵 active ,但代价是美元。

关于c# - 使用 Service Fabric 的 Owin 基于主机名的站点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42844062/

相关文章:

c# - 在单元测试中模拟对话框

azure - 如何更改在 Azure Databricks 中运行作业的 Spark 用户?

asp.net - 类型 : 'System.Net.Http.WebRequestHandler' 违反了继承秒规则

c# - 是什么导致 SignInManager.SendTwoFactorCodeAsync 返回 false?

c# - 在 OWIN TestServer 上调用 HTTP PUT

c# - 对于添加到队列的新消息,MSMQ 上是否有任何事件或回调

c# - ASPxGridView 在调整大小时更改高度,可能吗?

c# - Aes 加密不起作用

azure - 如何从 ADLS 批量加载 Azure SQL DB

azure - Elastic 搜索与 Azure 搜索