【问题标题】:architecture suggestion if web server is removed in 3 tier app如果 Web 服务器在 3 层应用程序中被删除,架构建议
【发布时间】:2018-06-30 02:07:01
【问题描述】:

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

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

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

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

欣赏专家的想法和建议。

【问题讨论】:

  • 你不能提供内容“来自” CloudFront...你提供内容通过 CloudFront,来自某处否则,例如 S3 或 Web 服务器。 CloudFront 是一个全球分布的缓存反向代理。
  • 我们计划通过 s3 服务。谢谢你的澄清。

标签: amazon-web-services n-tier-architecture


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

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

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

【讨论】:

  • 谢谢你。是的 app 和 rds 在私有子网中。唯一需要注意的是,如果我们从 cdn 提供 css、js,我们将如何处理缓存之类的事情?什么可以替代使用 apache 配置的页面速度?
  • 首先我不明白这里的问题,您是否担心断言文件更改时缓存失效,如果云前端提供缓存失效选项,或者您认为某些文件被更改所以通常您可以将这些文件配置为不被缓存。其次,由于您通过 CDN 提供静态资产,您还需要 apache Web 服务器吗?,进行负载测试如果它提供了非常好的性能提升,那么我建议在相同的应用程序框中运行 apache Web 服务器以避免额外的跃点。
  • 是的,问题是缓存失效,因为资产可能会随着时间而改变。不知道云端缓存失效。谢谢你的建议。
猜你喜欢
  • 2015-02-15
  • 2011-05-05
  • 2011-02-06
  • 1970-01-01
  • 1970-01-01
  • 2010-12-22
  • 2010-10-06
  • 1970-01-01
  • 2014-06-16
相关资源
最近更新 更多