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

Amazon web services 如果在3层应用程序中删除web服务器,则架构建议,amazon-web-services,n-tier-architecture,Amazon Web Services,N Tier Architecture,我们以以下方式在AWS中部署了一个JavaJ2EEWeb应用程序。 请求到达外部负载平衡器,该负载平衡器终止SSL并转发到web服务器,web服务器转发到内部负载平衡器,内部负载平衡器将请求转发到连接到数据库(rds)的tomcat app server。 这里有几个问题: ApacheWeb服务器的用途就是反向代理。它没有静态内容。所有内容包括jss、css都由tomcat提供。apache确实有用于缩小的页面速度模块 如果静态内容是从cloudfront提供的,为什么还要使用ApacheWe

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

  • ApacheWeb服务器的用途就是反向代理。它没有静态内容。所有内容包括jss、css都由tomcat提供。apache确实有用于缩小的页面速度模块 如果静态内容是从cloudfront提供的,为什么还要使用ApacheWeb服务器呢? 这将提高网络跳数和延迟

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

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

  • 感谢专家的想法和建议

  • 您不需要ApacheHTTPWeb服务器和内部负载平衡器。一般来说,web服务器放在app server之前是为了能够有效地处理网络连接、减轻慢读攻击、缓存静态内容等目的。因为tomcat服务器HTTP连接器在一段时间内针对上述情况进行了优化,所以您不需要HTTP服务器。您的外部负载平衡器将执行负载平衡,因此不需要内部负载平衡器

  • 考虑通过CDN只提供静态内容,如css、js文件

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


  • 你不能从CloudFront提供内容。。。您可以通过CloudFront从其他地方(如S3或web服务器)提供内容。CloudFront是一个全球分布的缓存反向代理。我们计划通过s3提供服务。谢谢你的澄清。是,应用程序和rds位于专用子网中。唯一需要注意的是,如果我们提供来自cdn的css、js,我们将如何处理缓存之类的事情?什么可以替代apache配置的页面速度?首先,我不理解这里的问题,您是否担心在断言文件更改时缓存失效,如果cloudfront提供了缓存失效选项,或者如果您认为某些文件经常被更改,您可以将这些文件配置为不被缓存。第二,由于您是通过CDN提供静态资产的,您还需要apache web服务器吗?如果它能提供非常好的性能提升,请进行负载测试,然后我建议在相同的应用程序框中运行apache web服务器,以避免额外的跃点。是的,问题是缓存失效,因为资产可能会随时间而变化。从云端不知道缓存失效。谢谢你的建议。