Next.js monorepo:子域上的多个应用程序与一个应用程序?

问题描述

我刚刚开始使用 nx.dev 从单个应用程序存储库迁移到 monorepo,因为我添加一个非常基本的静态文档应用程序到部署到子域 docs.company.com 的组合。

我的主应用程序当前部署到主路由 company.com。但是,您也可以将其视为不同的应用程序,例如 app1app2admin。我确实喜欢将所有内容作为单个应用程序的想法,因为它可以通过 nx 和 Vercels monorepo 支持轻松部署。

我只是不确定这里的方法是什么。当然,我可以将主应用拆分为多个应用,并将它们独立部署到子域中,例如:

  • admin.company.com
  • app1.company.com
  • app2.company.com

如果理解正确,如果我不喜欢子域并使用一个域来代替,我也可以使用 multi zones 支持

这个主应用程序,在逻辑上可以拆分为多个应用程序,它是非公开的,需要进行身份验证。它完全由客户端渲染,而 apollo 客户端用于与 GraphQL API 交互。此 API 服务器还设置了一个 http-only JWT cookie 以进行身份​​验证。我很确定我可以通过设置域 cookie 设置来缓解子域在这方面的问题,这样 cookie 也对子域有效。

但是,由于 cookie 是 http-only,我无法从客户端访问它,需要在我的全局状态管理(overmind.js)中跟踪登录状态。拆分应用会增加一些额外的复杂性,以在子域应用之间保持全局状态。

我不确定这是否值得,或者坚持单一应用程序方法是否更好。我很想听听您的意见,也许我忘记了一些重大问题。我想到的一些问题:

  • 使用子域的优缺点是什么?
  • 使用多区域和只使用一个应用是否更可取?
  • 如果切换到多个应用,如何解决身份验证/全局状态问题?

你有什么想法?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...