对于 SAAS 类型的 Web 应用程序、子域结构或 URL 结构,在可扩展性和安全性方面哪个更受欢迎?

Posted

技术标签:

【中文标题】对于 SAAS 类型的 Web 应用程序、子域结构或 URL 结构,在可扩展性和安全性方面哪个更受欢迎?【英文标题】:What is more preferred in terms of scalability and security for a SAAS type web application, a subdomain structure or a URL structure? 【发布时间】:2020-01-16 02:01:24 【问题描述】:

我有 SAAS 类型的应用程序,我正在为许多用户提供服务。 它是使用 php 开发的。 我想知道哪种结构更好,现在我有子域结构,每个组都是不同的子域,尽管都使用来自一个来源的相同代码。 所以喜欢

group1.domain.com
group2.domain.com

两者都使用单一代码,但行为具有单独的应用程序。

另一种结构也可用,我们在 URL 中指定组,而不是像

那样的子域
domain.com/group1
domain.com/group2

我的问题是哪种结构在可扩展性和安全性方面更好? 子域或 url 结构有任何安全问题吗? 如果我们需要扩展和使用多个服务器,哪个更好?

【问题讨论】:

我认为这是一个基于意见的问题,它更适合 server-fault 和 information-seurity 。我将使用域以实现可扩展性,因为请求将由域服务器路由,而不需要负载均衡器,您需要扩展一个域。为了安全起见,我将使用域也是因为您将免费获得同源策略安全优势。 【参考方案1】:

我不打算深入探讨有关可扩展性和安全性的全部细节,但两种 URL 类型的处理方式存在固有差异,这基本上是所有其他考虑的起点:

    子域路由由 DNS 系统控制,因此可以在不需要来自托管站点的服务器的任何输入的情况下进行路由。对路由的更改会有时间延迟。 基于路径的路由由 Web 服务器(例如 Apache)控制,因此需要由您的服务器或基础架构处理。可以立即应用更改。

鉴于您可以配置多个子域以指向同一个服务器,您可以在场景 #2 中执行的任何操作也可以通过场景 #1 实现。因此,问题是使用子域有什么好处,有什么坏处。

优点:

路由很便宜,因为它是通过 DNS 系统处理的。 路由灵活 - 如果特别麻烦的用户影响其他用户的性能,很容易将其转移到他们自己的服务器上。对于基于路径的路由,这将需要额外的基础设施。 如果您提供电子邮件服务,每个客户都有自己的子域,因此对邮箱名称没有限制。 这将允许您拥有每个客户端的 SSL 证书,而不是为所有客户端提供一个证书(尽管后者仍然是可能的)。

缺点:

添加/删除新客户端更难自动化,因为它需要更新 DNS。 更改需要很短的时间才能传播,而不是立即应用。

【讨论】:

以上是关于对于 SAAS 类型的 Web 应用程序、子域结构或 URL 结构,在可扩展性和安全性方面哪个更受欢迎?的主要内容,如果未能解决你的问题,请参考以下文章

高可用的 Saas Web 应用的经验总结

高可用的 Saas Web 应用的经验总结

面向 SaaS 产品客户的自定义域功能

web 应用程序转化为多租户 SaaS 解决方案

如何给 saas 软件提供 cname 前向支持

SaaS是什么?是订阅吗?还是web应用?