在80端口上使用AWS和AngularJS项目时,WebAPI后端会使用非80端口吗?



我有一个双重项目解决方案:1)Angular前端2)WebAPI后端。我们正在部署到Amazon EC2实例。在这个方框中,我为Angular代码创建了一个网站,端口为80(停止默认设置)。我还在WebApi的非80端口上创建了第二个网站。该解决方案目前不适用于EC2机器,仅适用于我的带有开发类型设置的开发机器。在我选择补救路径之前,我想知道什么是最佳实践。

显然,有人会把Angular放在80端口上,因为它是html内容,但api呢?有人会把它放在另一个端口上吗?或者有人会使用dns子域,但仍然是80端口吗?有时我还需要https,这是一个因素,端口太多?)

html和webapi最终都应该由一个服务器提供服务。

这是因为浏览器执行CORS,即同源策略。如果你从'http://domainname:80/index.html'收到html内容,你不能使ajax和http放/获取查询'http://domainname:8080/api/feature'等等。

也就是说,你可以在80端口上有一个像nginx或tomcat这样的前端监听器,并直接在80端口上提供angular应用程序和所有其他静态html。也就是说,你得到你的页面在http://domainname:80/index.html,你可以托管所有的API调用在不同的端口,但要求nginx重定向这些调用到不同的端口基于一些规则,你必须定义,子域或任何不要求index.html,使他们重定向到另一个服务器运行端口8080。确保在生产环境中阻止对该端口的公共访问,这样就没有人可以直接调用api的

最新更新