对我来说哪个更好——apache,nginx 还是 lighttpd?

对我来说哪个更好——apache,nginx 还是 lighttpd?

我正在编写一个 PHP 网站,预计会有大约 200-300 个并发用户浏览。初始化时,应用程序将加载大约 30 个 PHP 类、大约 10 个或 15 个图像和几个 css 文件。

所以我的问题是,我还能做什么(除了优化我的代码并使用 PHP 的 apc/eaccelerator)来尽可能接近这些并发用户数?

目前我们还没有选择用于托管网站的服务器,但最有可能的是双核 VPS + 2 或 4GB RAM。这样的服务器可以处理这种负载吗?另外我如何自己测试并确保它能够处理它?

答案1

我个人建议使用 Apachempm_worker和 FastCGI PHP、eAccelerator 以及可能的磁盘缓存mod_disk_cache,具体取决于您的 PHP 应用程序。如果您使用 PHP 生成静态、可缓存的文件(如图像、JavaScript 或 CSS),或者如果您的内容可缓存,您可能会注意到性能大幅提升。

我们从 Apache 的mpm_prefork+切换mod_phpmpm_workerFastCGI PHP 和mod_disk_cache,我们看到速度有了显著的提高。原因之一是,我们使用 PHP 来压缩 JS 和 CSS 文件,即使只是调用 PHP 来压缩缓存的 JS 文件也比让 Apache从磁盘缓存中提供该文件readfile()要慢得多。mpm_worker

许多人不惜一切代价地吹捧 lighttpd 优于 Apache,称 Apache 臃肿且缓慢。我以前用过 lighttpd,它非常灵巧,但根据我的经验,Apache 可以进行调优以实现极致性能,并且该mpm_worker模块为您提供了 lighttpd 所基于的相同基本线程概念。

回复:RAM,你能拿多少就拿多少!如果你能负担得起 4GB,那就买吧。你会很高兴你这么做的。

对于性能测试,有很多很棒的工具,但我发现Apache 自带的 apacvhe 基准测试工具是一种快速简便的性能测试方法。具体如何使用它值得单独提问 :-)

答案2

除非你的 PHP 代码真的很糟糕,否则答案是这些解决方案中的任何一个都应该可以处理负载。你应该选择你最熟悉的、最容易配置和管理的解决方案。

相关内容