如何在三层架构中使用VLAN或VPC保护应用​

如何在三层架构中使用VLAN或VPC保护应用​

2023-09-13 09:00:00

云计算 在当今的容器和云环境中,我们可以很容易地将不同组件分离到不同系统中,而这样做的好处也是很明显的:轻松快速地构建出更可靠、更安全、可扩展性更高的应用程序。​

通过VPC实现网络隔离能在安全性方面带来很多好处,例如实现内部协作以及妥善存储敏感信息。

在开发工作方面,网络隔离还可用于实现多层Web应用程序的部署。通过对应用进行分层,我们可以将能够以及不能访问公共互联网的应用划分为不同的片段,例如通常可以通过这种方式将数据库层与公共互联网隔离,同时依然可以从上层拉取补丁和软件更新,而不需要直接访问公共互联网。除了减小攻击面,这种做法还有助于实现多区域部署

延伸阅读,了解Akamai cloud-computing

出海云服务,选择Akamai Linode!

我们可以通过多种方式来运行多层应用,通常只需要依赖一些最基础的形式即可获得最大化的可扩展性、安全性以及可靠性。三层架构是一种最常见的设计形式,这种形式在云端环境中尤为常见。

三层应用程序通常由三个层组成,这些层往往位于不同服务器上,能够分别以高度独立的方式开发和维护。这三层分别是:

  • 表示层:管理用户和应用程序间通信的外部接口,通常由Web服务器组成,运行HTML和Web开发代码。
  • 应用程序层:一种自定义应用程序,提供了必要的业务逻辑,借此将应用程序“黏合”在一起。
  • 数据层:数据库系统,用于存储和检索应用程序中使用的数据。

这三层内容作为独立的服务,需要通过基于网络的API进行通信。出于安全和性能方面的考虑,应用程序层和数据层通常需要位于同一个本地网络中,并且需要放置在同一个防火墙之后,但每一层的分离也使得我们可以将每个组件部署在不同硬件上,甚至部署到不同的地理位置。实际可以实现的灵活性主要取决于应用程序的具体需求。

下图展示了现实世界中一个最基础的三层Web应用程序。表示层的Web服务器在浏览器窗口中为用户提供了交互界面;另一端的数据层则是一个数据库,该数据库可以是一个单独的系统,或是在网络中用一个单一实体所代表的集群。数据库层方面流行的开源选项包括MySQL、MariaDB、PostgreSQL for SQL、MongoDB以及Cassandra for NoSQL等。

图1:三层架构可将Web应用程序拆分为表示层、应用程序层和数据层

Web服务器和数据库之间还有应用程序层,我们的大部分开发工作可能都是围绕这里进行的。应用程序层包含供应用程序实现目标所需的自定义代码和业务逻辑。在前端,Web服务器会将查询发送给应用程序层,随后应用程序层会响应Web服务器,并由Web服务器设置数据格式随后展示给用户。在后端,应用程序层将查询数据库,接收数据,随后处理收到的数据,产生用户需要的信息或结果。

作为一个非常简单的例子,我们可以将数据库想象成存储了公司销售记录的记录册。用户输入请求,希望得到一段时间内某一特定商品在特定地点的平均日销量。Web服务器会将请求发送给应用程序层,应用程序层构造数据库查询,接收原始数据,执行必要的计算,随后将响应发送回Web服务器。

图2:用户向表示层请求一系列信息,应用程序层可将请求转换为数据库查询

对于应用程序层来说,Apache Web服务器可能是最方便的表示层解决方案,而MongoDB可能是最方便的数据层解决方案。而应用程序层的自定义代码通常会使用Python、PHP或Ruby等语言编写。并且在一些现成的编程框架帮助下,我们可以更高效的开始编写自己的代码,例如Python开发可选择Django,Ruby开发可选择Rails,PHP开发可选择Symfony。

理论上,应用程序层可以和表示层结合在一起,为此只需要向Web服务器提供直接查询数据库所需的必要代码,但对于大多数复杂的业务逻辑来说,这种做法并不现实,并且也抵消了应用程序划分所带来的好处。

上文提到的“好处”中最重要的一点是:可以减小攻击面从而提高安全性。如图1所示,三层解决方案最大限度减少了必须放置在防火墙之外的应用程序组件。Web服务器可以通过安全的API进行通信,其他活动都发生在防火墙内部,更重要的是,都发生在私有地址空间中,因此无法通过互联网访问,这样即可遏制包括SQL注入在内的很多隐患,毕竟SQL注入已经是最常见,也最具破坏性的漏洞。好在这些隐患通常可以通过对数据库进行隔离和保护所有直接通信等方式加以遏制。

三层应用程序带来的另一个好处是可靠性。当每一层都运行在单独的服务器上,运行在不同的物理硬件,甚至在完全不同的数据中心内运行时,一层出现的故障就不太可能影响到其他层。这还有助于进一步提高可扩展性。因为这些独立运行的组件也可以独立进行扩展。举例来说,如果数据库访问遇到性能瓶颈,即可向数据库集群添加更多节点,这一过程对整体运行的影响也是最小的。

三层方法还有助于优化开发流程。连接各层的API以一种支持高效分工的方式将不同组件分开,Web开发者和管理员可以操作和管理Web服务器,数据库开发者和管理员可以运行数据库系统。在这两者之间,精通应用程序层所用框架技术的专家可以只专注于应用程序代码。例如在DevOps场景中,应用程序开发者可以用脱机的方式构建并测试新版应用程序代码,并在保证对运行只产生最小影响的前提下轻松更改应用代码。

如果你要着手开发Web应用程序,可以从一开始就考虑采用三层架构。在当今的容器和云环境中,我们可以很容易地将不同组件分离到不同系统中,而这样做的好处也是很明显的:轻松快速地构建出更可靠、更安全、可扩展性更高的应用程序。

这篇文章的内容感觉还行吧?有没有想要立即在 Linode 平台上亲自尝试一下?别忘了,现在注册可以免费获得价值 100 美元的使用额度,快点自己动手体验本文介绍的功能和服务吧↓↓↓

出海云服务,选择Akamai Linode

欢迎关注Akamai,第一时间了解高可用的MySQL/MariaDB参考架构,以及丰富的应用程序示例。

文章来源网络,作者:管理,如若转载,请注明出处:https://shuyeidc.com/wp/281485.html<

(0)
管理的头像管理
上一篇2025-05-13 00:37
下一篇 2025-05-13 00:38

相关推荐

  • jsp空间购买和交换数据空间怎么买,有哪些注意事项?

    购买JSP空间时,是否考虑过数据交换空间的性能?简米科技(2003年始创,23年行业沉淀)与酷番云(工信部一类增值电信全牌照)这类持牌自营机房的服务商,能确保数据交换的高效稳定,是值得优先选择的合作伙伴,为什么JSP空间需要搭配独立的数据交换空间从JSP应用特性看数据交换需求JSP基于Java技术,常用于企业级……

    2026-08-11
    0
  • 建网站用香港空间效果怎么样,香港空间稳定吗?

    建网站用香港空间,对于创建网站资产来说,核心价值在于免备案和全球带宽优势,尤其适合外贸、跨境电商和需要快速启动的项目,但你必须权衡国内访问延迟,并选择有资质的服务商以保证资产安全,香港空间的核心优势与适用边界免备案:节省时间就是节省成本国内服务器需要备案,通常需要10到20天,香港空间无需备案,域名解析后即可上……

    2026-08-11
    0
  • Java连接云数据库的方法是什么,如何操作

    Java连接云数据库的核心在于通过JDBC驱动,结合云服务商提供的连接地址、端口、数据库名及认证信息,配置安全策略(如SSL、IP白名单),即可实现稳定高效的远程数据库访问,基础准备:JDBC驱动与依赖管理连接云数据库前,需要确保开发环境具备对应的JDBC驱动,以最常见的MySQL为例,你需要引入mysql-c……

    2026-08-11
    0
  • 建网站公安联网备案必须使用数据码吗,备案流程是什么

    网站备案包括ICP备案和公安联网备案,两者缺一不可,公安联网备案必须使用服务商提供的数据码,选择持有合法资质的服务商是顺利通过备案的前提,为什么网站必须进行公安联网备案根据公安部《计算机信息网络国际联网安全保护管理办法》,网站开通后30日内必须到公安机关办理备案手续,未完成公安备案的网站,面临责令整改、关闭网站……

    2026-08-10
    0
  • 建一个企业网站大概需要多少钱?,怎么收费?

    建网站要多少钱,没有一个固定的数字,几百到几万都可能,但真正的“创建网站资产”绝不仅仅是初次投入的成本,而是基于长期稳定、合规和安全的持续性投入,其中核心取决于你选择了什么样的“地基”来承载你的业务,建站预算的构成与行业基准当你开始规划一个网站,最先面对的就是预算问题,一个常见的误区是只关注网站“看起来”的建造……

    2026-08-10
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注