首页 > 解决方案 > 如果 Web 服务器在 3 层应用程序中被删除,架构建议

问题描述

我们以以下方式在 AWS 中部署了一个 java j2ee Web 应用程序。请求到达外部负载均衡器,后者终止 SSL 并转发到 Web 服务器,Web 服务器转发到内部负载均衡器,内部负载均衡器将请求转发到连接到数据库 (rds) 的 tomcat 应用服务器。这里有几个问题:

  1. apache web 服务器的目的只是反向代理。它没有静态内容。包括 jss、css 在内的所有内容均由 tomcat 提供。apache 确实有用于缩小的页面速度模块 如果静态内容是从云端提供的,为什么还要有 apache 网络服务器?这将改善网络跃点和延迟。

  2. 如果内容实际上是从云端提供的,我们如何获得页面速度的功能以避免缓存等问题?

  3. 如果我们删除 apache,我们打开了应用程序的前门,但安全性真的受到威胁吗?

欣赏专家的想法和建议。

标签: amazon-web-servicesn-tier-architecture

解决方案


  1. 您不需要 apache HTTP Web 服务器和内部负载平衡器。通常,Web 服务器放置在应用服务器之前,其目的是为了能够有效地处理网络连接、减轻慢速读取攻击、缓存静态内容等,因为 Tomcat 服务器 HTTP 连接器在一段时间内针对上述情况进行了优化,您不需要HTTP 服务器。您的外部负载平衡器将执行负载平衡,因此也不需要内部负载平衡器。

  2. 考虑仅通过 CDN 提供静态内容,如 css、js 文件。

  3. 您的应用程序不直接暴露在互联网上,请求来自 ELB。除了公共 ELB 之外,应用程序和 RDS 都应该在私有子网中启动(实例将具有私有 ip)。确保正确配置安全组以避免安全漏洞。


推荐阅读