nginx + php-fpm + apc ...压缩?

nginx + php-fpm + apc ...压缩?

我有一个运行 nginx 1.1.19、php-fpm 5.3.10 和 APC 3.1.9 的 VPS。该服务器主要运行 PHP 脚本 (vB、SMF、IPB)。如果有必要,我还使用 Cloudflare 作为 CDN。

据我所知,压缩有 3 种选项,我不确定哪些是彼此冗余的,或者它们是否都是冗余的,以及哪个服务应该处理它。

nginix 有 gzip,php-fpm 有 zlib,PHP 脚本本身也有 gzip。我觉得我在很多文档中都看到过,如果 Web 服务器 (nginx) 正在处理 gzip,那么 PHP 脚本就不应该处理。php-fpm 中的 zlib 是否应该与 gzip 一起启用,或者从技术上讲它们是同一件事?我看到一个来源说 gzip/mod_deflate 和 zlib_compression 是多余的,而且不必要地占用 CPU 周期,但是当 zlib 和 gzip 都启用时,我的 vB 安装似乎运行得更顺畅。

有人知道这种设置的最有效的压缩组合/排列吗?

答案1

我不确定如果在多个层启用压缩会发生什么,但我会在最顶层(即 Nginx)启用它。这样不仅可以捕获动态生成的 PHP 内容,还可以捕获由 Nginx 直接提供的静态内容。我认为压缩是将内容发送到客户端之前的最终输出过滤器之一。

答案2

您将需要在 nginx 中使用 gzip,并在所使用的 Web 应用程序中禁用 gzip。同时启用这两项功能将导致 gzip 中断。
根据我的经验,Cloudflare 只会减慢网站速度(静态内容在高峰时段的传输速度很慢),但如果我没记错的话,Cloudflare 也有一个压缩(gzip)选项。

zlib 和 gzip 格式在内部使用相同的压缩数据格式,但压缩数据的头部和尾部不同。
另一方面,zlib 格式是为内存和通信通道应用程序设计的,其头部和尾部比 gzip 更紧凑,并且使用更快的完整性检查。

除了 APC,您可能还想尝试 eAccelerator。许多用户报告说它的性能比 APC 更好。

如果您想进一步优化,请查看 Google PageSpeed 和 YSlow。它们确实为我的网站优化提供了很大帮助!

相关内容