拆分登陆页面和单页应用程序是个好主意吗

111*_*110 5 architecture web-hosting single-page-application

我有应用程序架构问题。

我想用 nextjs 之类的东西制作登陆页面,因为它需要 SEO。
我将制作不需要 SEO 且需要登录的 React 应用程序。

我的想法是用户可以从登陆页面重定向到应用程序登录页面。
但这应该如何托管,甚至这是一个好主意吗?

两者应该托管在不同的域上吗?

ymz*_*ymz 4

在我们开始之前,我确实同意您的观点,这两个不同的网站具有完全不同的行为,因此需要不同的处理方法。

言归正传 - 让我们将您的问题分为以下几个因素:

  • 可用性
  • 传入流量
  • 价钱

可用性 大多数情况下,您的目标网页应该通过 提供服务,CDN以便获得全球范围的覆盖,而应用程序本身可能会使用cdn. 需要考虑的一些技术点:

  • 如果该页面也是使用现代堆栈构建的,那么它也可以通过cloud-based storage
  • 您可以选择托管云提供商的 CDN(例如awsazuregcp等)或使用完全外部的服务(例如max cdn)。主要取决于你的网站所采用的技术栈

传入流量 由于登陆页面向公众开放并使用anonymous access(例如,无需登录),因此它们处于遭受ddos其他恶意攻击的高风险级别。这就是为什么这些网站大多托管在 或任何其他层后面wafgateway以帮助这些网站保护自己免遭劫持。此外,在大多数用例中,这些网站应该处理非常高的负载(远远超过受登录保护的应用程序本身)。一些关键点:

  • 着陆页网站负载可能会发生巨大变化并且没有任何警告。因此,它们的部署方式elastic high availability意味着 - 当发生高负载时 - 请使用更多资源来处理这些负载(并且当负载恢复到正常水平时请自动减少它们)
  • 就日志而言 - 处理时identify users和处理时传入流量是不同的anonymous access- 两者cyber security都在data analysis
  • 需要登录的应用程序通常需要使用可靠的gateway某种identity management解决方案。这些部分在功能和资源使用方面对登陆页面没有任何好处

定价 是的,我们希望获得尽可能多的灵活性,但我们也希望支付尽可能低的价格。耦合这两个不同的应用程序可能会导致使用昂贵的资源来处理登陆页面加载。另一方面,将它们解耦将使我们能够跟踪每个资源组并只为我们正在使用的资源付费。所以是的 - 就定价而言甚至是有意义的

简而言之(某种程度上)——2 个不同的应用程序应该有 2 种不同的部署方式——每种方式都有自己的技术堆栈和配置。这会给我们

  • 灵活性——一种环境的改变不会损害另一种环境
  • 部署 - 2 个不同的管道 - 每个管道仅专用于一个解决方案
  • Pricing - there is no need to waste resources (for example: by over using libraries that consume resources that most time is unused) hence - paying less
  • DevOps - in some use-cases - 2 different devOps personnel may handle each pipeline, which may be an advantage

Hope this information helps