跳转到主要内容

应用

Netuno 是一个多应用服务器,通过域名和子域名分发对应用的访问。

多个 Web 应用既可以是公开的,也可以是私有的,因为 Netuno 用于构建后台管理系统。因此,通常应用始终具有私有访问入口,但公共接口是可选的。

在 Netuno 中开发多个应用时,它们既可以在数据库层面解耦,也可以在数据库层面耦合。

这意味着我们可以让多个应用共享同一个数据库,也可以为每个应用使用独立的数据库。

多数据库中的解耦应用​

当应用涉及完全不同的领域时,让它们共享同一个数据库就没有意义。

假设您有一个用于发送新闻简报的应用、另一个用于管理图书的应用,还有一个用于管理配送的应用;其中任何一个都不需要另一个应用中存储的信息,因此它们完全独立。

因此,没有理由让它们共享同一个数据库,而应让每个应用拥有自己的数据库:

解耦应用。

这样,任何应用都无法获知其他应用中存储的信息,并且其全部运行都独立于现有的其他应用。

同一数据库中的耦合应用​

当我们处理需要共享信息且可能存在大量数据的应用时,共享数据库在性能层面是最可行的方案,但在数据安全性和完整性层面并不是最佳方案。

因此,出于安全性和完整性的考虑,通常会创建大型 Web 应用,将所有内容集中在一个复杂应用中,并使用该应用专属的数据库;如果该应用需要外部数据,则可以在必要时与其他数据库和 Web 服务集成。

在这种情况下,Netuno 已经提供了开发这类应用所需的一切手段,同时也为使用共享数据库的应用提供了良好的解决方案。

由于主要问题在于数据安全性和完整性,使用 Netuno 时,当多个应用使用同一个数据库,它们会自动被限制为只能访问与其表单相关的表。

它允许将表单以及相应的表共享给数据库中耦合的其他应用。

设想这样一个场景:您有一个客户管理应用、一个供应商管理应用,还有一个开票应用;这是因为既会有需要支付的供应商发票,也会有需要收款的客户发票。

客户应用不应与供应商应用共享数据,它们是不同的应用。

但开票应用需要与这两个应用集成,以获取客户应用和供应商应用的数据,从而能够关联发票并在各种情况下管理收款和付款。

耦合应用。

为确保应用之间不会干扰彼此的敏感数据,还建议为每个应用使用不同的数据库访问权限,并且还可以通过数据库控制其对表的访问,以确保不会发生不必要的干扰。

此外,Netuno 会进行控制,以区分哪些属于某个应用、哪些属于另一个应用,以及哪些是在它们之间共享的。

每个应用的地址​

Netuno 会自动通过域名和子域名分发对应用的访问。

当请求到达 Netuno 时,域名的处理方式如下:

带子域名的应用地址示例图片。

Netuno 会查找第一个点之前的部分,判断是否存在使用该名称的应用。

如果存在使用该名称的应用,则由该应用接收请求。

如果不存在使用该名称的应用,则请求会交给默认应用(default)。

这种域名解析在子子域名的情况下也同样有效,例如:

带子子域名的应用地址示例图片。

也就是说,第一个点之前的部分决定了将由哪个应用接收请求并处理。

并且 Netuno 还允许为应用定义确切的域名地址,只需定义该应用将运行的确切地址即可。

使用自动方式处理域名可以让应用在绝大多数情况下正常运行;如果即便如此,仍存在需要为应用运行使用完全不同且特定地址的情况,则需要在应用配置中定义该地址。