我们刚刚将我们的网站迁移到全新的高规格 Linux 服务器(1x Intel Xeon E3-1230 v2 @ 3.30GHz、8GB DDR3 ECC、2x 128GB SATA SSD RAID1)。
服务器已配置为使用 nginx,但我们不确定它是否正常工作。该网站对我们来说总是加载得非常快(http://www.onedirection.net),但 Plesk 经常向我们发送 Apache CPU 使用率百分比达到高水平的报告,而当我们查看 nginx 百分比时,它总是很低。
我们以前使用过 Windows,所以对 Linux 还很陌生,但是 nginx 不应该代替 apache 运行吗?
以下是 Plesk 的屏幕截图,显示了 CPU 使用率: http://www.pixelkicks.co.uk/_download/plesk.JPG
该网站每天的访问量约为 20,000 人次,我们使用 W3 Total Cache 使其尽可能快地运行。MySQL 已得到很好的优化。
内存使用量仅为 8GB 中的 2GB。
这看起来对吗?我们怎么知道 nginx 做了大部分工作?
答案1
Apache 的“高” CPU 使用率实际上不是由 Apache 引起的,而是由 PHP 引起的,PHP 实际上是作为 Apache 可执行文件中的共享对象加载的。因此,WordPress 和任何其他正在运行的 PHP 脚本所占用的 CPU 时间都归因于 Apache,因为 PHP 在 Apache 的进程中运行。
在这种情况下,根本不需要 Apache。典型的 nginx 设置将 nginx 作为源服务器,php-fpm(将 PHP 作为单独的进程运行)运行 PHP 脚本。nginx 和 php-fpm 的示例配置如下:WordPress 自己的 wiki,W3 Total Cache 将为 nginx 生成自己的配置片段。
使用 nginx + php-fpm 配置还有一个好处,就是更容易找出运行缓慢的 PHP 脚本,因为 php-fpm SAPI 包含脚本记录能力缓慢(并且没有其他 PHP SAPI 可以做到这一点)。