在 Apache、LightTPD 和 Nginx Web 服务器上提供 PHP 5.x 应用程序的当前状态如何?

在 Apache、LightTPD 和 Nginx Web 服务器上提供 PHP 5.x 应用程序的当前状态如何?

过去一年半,我一直处于 MS 堆栈架构/开发职位,这使我无法比自己希望的更多地了解基于开源堆栈的 Web 服务器的最新发展。但是,我现在正在构建基于开源堆栈的应用程序/系统架构,遗憾的是,我没有时间对上述每个 Web 服务器进行彻底的测试,然后再做决定。所以我想我会从最知名的系统架构社区获得意见。

这是一个针对特定领域和目标受众的信息资源网站,其功能不仅可以帮助用户查找信息,还可以帮助用户出于各种原因以各种方式相互交流。

我选择开源堆栈是因为它拥有丰富的资源,并且比 MS 堆栈提供更好的产品(例如 WordPress 与 BlogEngine.NET)。在这方面,我觉得 Java 在这些堆栈中处于中间位置,尽管我不排除在某些与实际 Web 应用程序本身无关的领域(例如后台进程)使用它的可能性。

我已经得出结论,在 CentOS 上使用 PHP(使用 CodeIgniter 框架和 APC)、MySQL(InnoDB)和 Memcached。我肯定会在 Nginx 上提供静态内容。然而,上述 3 个服务器在性能方面对于哪个最适合动态内容没有共识。LightTPD 似乎仍然存在泄漏问题,如果存在泄漏问题,则排除了这种可能性,Nginx 似乎在这方面还不够成熟,当然 Apache 试图满足所有人的需求。

我仍然会编译所选的版本,并尽可能多地进行性能调整,例如静态链接等。我相信我可以让 Apache 通过此过程提供动态内容,而不是提供任何静态内容,从而与其他两个版本相匹配。然而,在我的研究过程中,似乎其他版本仍然值得考虑。

因此,考虑到所有因素,我很想听听大家对此事的看法。谢谢!

答案1

对此持保留态度,但我的印象Apache 比其他两款服务器更容易配置以提供 PHP 服务。如果您正确设置 Apache,即不加载不必要的模块,控制进程/线程数量等,那么我认为您可以使其效率相当接近 nginx 或 lighttpd。我认为许多人对于使用 lighttpd 或 nginx 而不是 Apache 来生成动态页面的改进的看法有些夸大。

答案2

我个人认为 nginx 比 Apache 更容易配置。查看 Apache 配置往往让我头疼。

就配置而言,我目前首选的设置是 nginx + php-fpm + APC。我有几个客户端使用此配置运行非常顺利,它们通常已从基于 Apache 的设置迁移过来。显然,YMMV。=)

答案3

既然您提到了 CodeIgniter,您可能想看看 Kohana,它最初是 CodeIgniter 的一个分支,但是已经在 php5 改进的 OO 概念上实现了所有的 OO。我并不是说哪个更好,最终这是一个个人喜好的问题。

相关内容