PHP 网络服务器的最快选项

PHP 网络服务器的最快选项

我需要运行一个处理大量请求的 PHP 应用程序。我想知道使用 Apache 以外的任何产品是否真的有好处,以及替代方案的优缺点是什么。

我有使用 lighttpd 和 nginx 开发 Rails 应用程序的经验。它们也是 PHP 的优秀竞争者吗?有什么重要的设置技巧吗?

PHP 加速器怎么样?它们可以与这些替代服务器一起使用吗?这是一个好主意吗?

我在一个 OpenSolaris 盒子上。

不确定是否相关,但稍后我计划在此服务器前面放置一个 Varnish 代理/缓存。

编辑:

我想补充一点,我绝对没有打算碰这个应用程序。这是 PHP 最典型的混乱之处,而且我基本上没有时间。

答案1

Apache 是一个带有 mod-php 的良好基础 - 并且添加 APC 用于字节码缓存,并且一些变量缓存将有很大帮助,事实上,它是加快 PHP 脚本运行时间最明显的事情(此外,使用 Yslow 来加速 HTML 前端并确保数据库得到优化)。

不过,我还是想提一些建议,比如避免使用 Apache 提供图片和其他静态内容。我有一个单独的(子)域,里面有一个专用的图片服务器(我使用thttpd, 但nginx也完全合适)。不过,从完全独立的域名(或 CDN)提供图像会更好。

NginX 还具有充当代理的优势,它可以处理入站连接,然后将结果反馈回来 - 这意味着 Apache2/Mod_php 的后端生产者进程可以以完整的本地网络速度工作,而不必等待 Web 浏览器客户端赶上来。

Varnish 可以执行 Nginx 无法完成的额外工作,但我对它不太了解 - 可能只需要其中之一,但不太可能同时使用两者。

答案2

nginx结合php-fpm缓存将比任何 Apache 解决方案提供巨大的速度提升。

取决于您的应用程序是否包含诸如内存缓存还可以提供大量的缓存优势。

答案3

由于 Wordpress 网站,我的带有 mod_php 的 Apache 服务器内存不足。因此,在优化了 Wordpress 之后,我转向了 Apache。我发现 mod_fastcgi 比 mod_fcgi 效果更好。将 PHP 从 Apache 中移出减少了 Web 服务器的占用空间(从每个进程 38M 减少到 4M)。我还安装了 eAccelerators,发现 PHP 运行速度更快。此外,如果您的页面包含大量内容(CSS 和 javascript),我在 Wordpress 中使用的技巧之一是将包含的内容压缩为一个文件,以减少空白(但这可能更像是 Wordpress 的产物)。

因此我建议将 PHP 移出 Apache(并使用 mod_fastcgi [php-cgi] 移入单独的进程)会有所帮助。请注意,PHP 加速器将增加 PHP 进程的内存需求(这是将其移出 Apache 进程的另一个原因)。

相关内容