【问题标题】:frontend and backend separation in azureazure 中的前端和后端分离
【发布时间】:2017-05-14 05:44:15
【问题描述】:

我正在开发一个由 Angular 前端和一个简单的 NodeJS 后端组成的简单站点。我目前看到了 3 种设置项目的方法:

  • 有 1 个 Web 应用来提供静态 HTML 和 1 个用于 NodeJS 后端的 Web 应用
  • 使用同一个 NodeJS 实例同时提供 REST API 和静态文件
  • 我阅读了有关 Azure Web 应用程序的虚拟目录的信息,但找不到合适的文档。这甚至是一个可行的解决方案吗?

用于 Azure 的标准设置是什么?有没有我错过的深入文档?

【问题讨论】:

    标签: node.js azure azure-web-app-service


    【解决方案1】:

    我会说这是一种很难得到答案的问题,因为有人可以就这个主题写一整本书,而且很多方面都是个人喜好、方法等问题。

    在尝试第一个答案之前,我想指出我对 Node.js 一点也不熟悉,但我对 Azure AppService 和 ASP.Net Core MVC 相当熟悉。

    Azure AppService(本例中为网站)中没有标准设置,实际上您提到的所有 3 个选项都是有效的。根据我对 Azure AppService 的经验,我会说当您拥有公开可用的 API 时,选项一是合适的。在这种情况下,您还可以使用 Azure 管理 API 注册您的 API。

    在我看来,当您的前端是 API 的唯一使用者时,第二个选项最适合。

    第三个选项并不常见,但 100% 可能。 Here 是一篇非常好的文章,介绍了如何设置虚拟目录以及如何使用 Visual Studio 将应用程序部署到它们。我不确定如何使用您可以使用的工具准确地完成此操作,但从概念上讲,它应该是可能的。但是,在虚拟目录中部署 NODE.js 项目可能会导致一些您应该做好准备的问题。更多信息here

    但是我会坚持我在开始时所说的:如果我的 Angular 应用程序是 API 的唯一使用者,我会将后端和前端部署到同一个 Web 应用程序,如果我的 API 会部署到 2 个不同的 Web 应用程序是公开的。

    我很好奇其他人在这方面会怎么想。

    【讨论】:

    • 不知道为什么这个问题得到这么多反对票。这是一个完全有效的问题。我不了解虚拟目录,但我认为您的 cmets 对 1 对 2 Web 应用程序有效。拥有一个公共 API 并不一定意味着最好有 2 个 Web 应用程序,尽管值得考虑。您真正想问自己的是,即使我想暂时关闭我的网站,我的 API 是否需要可用?然后两个网络应用程序很好。否则,一个网络应用程序可以很好地完成这项工作。前端有角度,后端有节点的静态服务网站做得很好!
    • 我的想法或多或少是一样的,但表达起来有点不同。但是,正如答案中提到的那样,即使它应该是可能的,我也只会推荐使用虚拟目录作为最后的手段。附言我也不知道你为什么投了反对票 :( 不是我 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-02
    • 1970-01-01
    • 1970-01-01
    • 2017-03-10
    • 1970-01-01
    • 2011-12-26
    相关资源
    最近更新 更多