Kestrel是支持urls/hostnames,还是只能监听一个端口?

Does Kestrel support urls/hostnames, or it can only listen to a port?

我正在尝试启动 ASP.NET 5 网络应用程序,以便可以通过 public 互联网地址访问它,例如“http://hostname.dom”。

我不希望通过“http://www.hostname.dom", "http://test.hostname.dom”等方式访问它。我将 DNS 记录配置为通过“*.hostname.dom”和 [=27 指向服务器的 IP 地址=] 名字。

所以我使用以下参数启动 Kestrel:

server.urls=http://hostname.dom

我希望它忽略任何不是“http://hostname.dom”的地址,但每个“http://justanything.hostname.dom[=26=”都可以使用应用程序]" 地址,甚至只是通过 IP 地址。所以它正在监听对 80 端口的所有请求,而不是对特定主机名的请求。 例如,在配置 IIS 站点绑定时,您可以指定 "hostname.dom" 之类的绑定,它将忽略任何其他可能的前缀,直到您明确指定它们。

Kestrel是否支持urls/hostnames,还是只能监听一个端口?

是的,Kestrel 不支持主机名侦听。仅 ip:port 绑定。为了让它成为可能,你,我的朋友,要么必须使用另一个托管解决方案(如 WebListener,如果 运行 on Windows),要么使用网络服务器配置转发:http://druss.co/2015/06/asp-net-5-kestrel-nginx-web-server-on-linux/