2015-10-18 89 views
1

我试图启动ASP.NET 5的Web应用程序,以便它可以通过公共Internet地址访问,如“http://hostname.dom”。Kestrel支持URL /主机名,还是只能监听端口?

我不希望它通过“http://www.hostname.dom”,“http://test.hostname.dom”等无法访问。我有DNS记录配置为指向服务器的IP地址通过“* .hostname.dom”和“hostname.dom”名称。

于是我开始隼与参数:

server.urls=http://hostname.dom 

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

不红隼支持URL /主机名,也只能听一个端口?

回答

2

嗯,是的,红隼不支持主机名听力。只有ip:端口绑定。为了使人们有可能,你,我的朋友,要么必须使用其他托管解决方案(如WebListener,如果在Windows上运行)或配置转发与一个Web服务器:http://druss.co/2015/06/asp-net-5-kestrel-nginx-web-server-on-linux/

+0

为什么这么难?为什么我不能将它绑定到localhost:80与管理员?它定位为Web服务器,为什么我的Web服务器在5000端口上运行? – ZOXEXIVO

+0

嗯,我认为,这不是最糟糕的想法,因为还有很多其他解决方案,例如安全性方面已经很成熟。所以你有一辆带Kestrel的自行车,当你需要的只是一辆自行车时,这并不坏。 – yaapelsinko

+0

我也很惊讶地发现Kestrel忽略了主机名https://github.com/aspnet/KestrelHttpServer/issues/211#issuecomment-141608648 – Stajs