我正在asp.net核心中构建一些网站(多个用户界面应用程序和一个Web API应用程序)。他们都利用Web API一起工作。就我的问题而言,我们将其称为App1,App2和App3。我将网站托管在IIS中。
通常,在旧的.net Framework(4.5.1)中,我将在IIS中拥有一个网站,其中包含多个Web应用程序来承载多个应用程序。像这样:
如果网站(WebSite1)在端口443上运行(使用SSL证书),则意味着可以通过一个域网址访问所有应用,如下所示:
网址末尾使用不同的应用名称来标识它们。
当托管新的asp.NET Core应用程序时,我也托管在IIS中,并按照asp.NET Core网站部署的文档,将每个.NET Core Web应用程序托管在IIS中的另一个站点中。
因为我所有站点都有一个域名,例如 https://www.example.com(我使用的是SSL证书),所以我必须给其他网站提供不同的端口。所以我最终得到这样的东西:
然后,可以通过以下域名URL访问所有这些应用程序:
如何将一个网站上的asp.NET Core应用程序托管为不同的“应用程序”,这意味着它们解析为相同的域名url( https://www.example.com和正斜杠应用程序名称标识我们想要的应用程序)?或者,如何使用端口配置我现在配置的所有路由并将它们全部路由,因此app1是example.com/的默认值,App 2是example.com/app2/的值,App 3是example.com/app3/的值?
我是否完全以错误的方式看待此.NET Core部署?
在此先感谢您的指导!
请您参考如下方法:
您可以使用反向代理为同一域上的多个ASP Net Core应用程序提供服务。
我不确定使用IIS,但是您需要安装URL Rewrite,然后按照Microsoft提供的documentation进行操作(而且this one应该会有所帮助)。
您还可以按照以下方式使用nginx和location使用proxy_pass:
...
Some nginx Configuration
location /App1 {
proxy_pass http://127.0.0.1:443;
}
location /App2 {
proxy_pass http://127.0.0.1:444;
}
location /App3 {
proxy_pass http://127.0.0.1:445;
}
Other configurations...
然后,每次要向域中添加另一个ASP Net应用程序时,都需要添加另一个位置,在其他位置运行该应用程序,然后重新启动nginx。