【发布时间】:2023-10-29 21:47:01
【问题描述】:
我有一个没有太多静态内容和更多动态生成页面的 Web 应用程序。假设我将它部署在 weblogic 中。为什么我仍然需要 Web 服务器 (IIS/Apache)?如果我不使用网络服务器,有什么缺点?
【问题讨论】:
标签: iis web-applications webserver weblogic application-server
我有一个没有太多静态内容和更多动态生成页面的 Web 应用程序。假设我将它部署在 weblogic 中。为什么我仍然需要 Web 服务器 (IIS/Apache)?如果我不使用网络服务器,有什么缺点?
【问题讨论】:
标签: iis web-applications webserver weblogic application-server
Weblogic/Websphere 未调整为标准 HTTP 服务平台。与专用 Web 服务器相比,您的性能将大大低于标准。像 IIS 这样的 Web 服务器会将静态内容缓存在内存中,从而可以非常快速地提供服务,并且系统开销很小。在某些情况下,Weblogic 可能会这样做,但总体而言,专用的 Web 服务器会更快。
此外,根据您的环境和需求,可能存在安全隐患(例如,如果使用 AD 身份验证),并且与 URL 相关的错误处理通常在 Web 平台上更加顺畅。在专用 Web 平台上配置可读日志记录也将大大简化。然后是 Web 平台将提供的一些功能,例如主机头绑定等,但我猜如果您提供的是一个简单的静态网站,您并不会过分关注这些。
【讨论】:
mmh,如果我正确理解您的问题,您提到您的静态内容很少。 在我看来,如果您不需要任何额外的“Web-Server”功能,我认为使用额外的 Web-Server 过于复杂,而且更多的是性能缺陷而不是改进。 由于您需要在 Web 服务器和应用服务器之间建立额外的连接,因此必须切换 Web 服务器会引入更多的网络延迟。
如果您有许多并发请求并且其中大部分是静态内容,那么 Web 服务器可能会很有用。 它也可能对一些与安全相关的限制很有用(您可以将应用程序服务器放在第二个防火墙后面)
根据我的经验,如果你真的不需要Web-Server,那就不要使用它,直接去App-Server,这样麻烦就少了……
【讨论】:
您实际上根本不需要网络服务器。使用 WebLogic Server 进入生产环境并且不使用 Web 服务器来卸载静态内容是一个完全可行的选择。
将 WebLogic Server 用于这两个角色的最大问题是,如果存在大量静态内容,那么您会降低扩展 WebLogic 环境以处理更大的客户端群的能力,因为 CPU/网络 I/O也被用于提供静态内容。 WebLogic Server 花时间提供静态内容,以及呈现动态内容。
让 Web 服务器在安全性较低的网段中提供静态内容,并通过防火墙将其与 WebLogic 实例分开,无疑具有安全优势。
引入专用 Web 服务器的缺点是您需要管理另一个进程(或一组进程)并确保您的 Web 服务器与 WebLogic Server 实例一样具有高可用性。
我不同意 Toby Meyer 的说法,即 Web 服务器的性能将显着提高(尽管它绝对值得进行比较性能测试),或者您使用 Web 服务器配置错误处理的能力更顺畅 - 使用 servlet单独使用过滤器链和连接过滤器,您可以使用 WebLogic Server 获得一些非常强大的功能,尽管您需要编写这些功能。如果您使用自定义 HTTP 标头,您实际上可以获得更加灵活和强大的 HTTP 日志记录。
总而言之,我认为不使用 Web 服务器的缺点如下: - 增加 WebLogic 环境的负载 - 无法将静态内容放在安全性较低的网段中,与 WebLogic Server 实例分开
【讨论】: