Angular 单个控制台,用于在同一域下提供多个应用程序

Angular 单个控制台,用于在同一域下提供多个应用程序,angular,architecture,httpserver,Angular,Architecture,Httpserver,我试图找出以下需求的体系结构。 有许多不同的angular2应用程序由不同的团队开发。我希望它们可以在somedomain.com上的公共控制台下使用。像这样的。 打开时,每个应用程序都应该从相同的域提供服务,如下所示 app1 -> somedomain.com/app1 app2 -> somedomain.com/app2 app1 : <base href="/app1/"/> app2 : <base href="/app2/"/> 像wise

我试图找出以下需求的体系结构。 有许多不同的angular2应用程序由不同的团队开发。我希望它们可以在somedomain.com上的公共控制台下使用。像这样的。

打开时,每个应用程序都应该从相同的域提供服务,如下所示

app1 -> somedomain.com/app1
app2 -> somedomain.com/app2
app1 : <base href="/app1/"/>
app2 : <base href="/app2/"/>
像wise一样,让用户感觉这些是一个通用应用程序的服务。 在aws控制台中会发生这种情况

我还希望每个团队能够维护自己的存储库并维护独立的CI/CD管道

我试过的是这样的

所有angular应用程序都放在http服务器所在的同一个框中。 我修改了他们的基本标签如下

app1 -> somedomain.com/app1
app2 -> somedomain.com/app2
app1 : <base href="/app1/"/>
app2 : <base href="/app2/"/>
app1:
附录2:
这解决了从公共域提供服务的问题。但它们的部署与服务器机箱紧密耦合,因为它们都共享一个公共机箱


是否有解决此类问题的架构或模式?除了由独立团队管理和开发的应用程序外,我还想设计一些可以扩展到n个应用程序的应用程序。

您可以将angular应用程序部署到AWS S3存储桶中,其中包含托管angular应用程序的/app1和/app2目录。您可以为应用程序选择页面保留index.html。然后使用S3 bucket前面的AWS CloudFront和somedomain.com的域映射,您可以相应地使它们可用


除此之外,您还可以通过CloudFront连接到后端服务器,以避免CORs挑战。

S3非常适合服务静态网站。我认为它不适合我当前的使用情况在设计架构时,您可以将AngularJS部分和静态内容移动到S3(甚至html),除非您有服务器渲染