如果在 3 层应用程序中删除 Web 服务器,则架构建议

architecture suggestion if web server is removed in 3 tier app

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

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

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

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

感谢专家的想法和建议。

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

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

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