Nginx+PHP-FPM 与 Apache-mod_php 的比较

Nginx+PHP-FPM 与 Apache-mod_php 的比较

我正在运行 Drupal,并试图找出为其提供服务的最佳堆栈。Apache + mod_php 或 Nginx + PHP-FPM

我使用 ApacheBench (ab) 和 Siege 测试了这两种设置,发现 Apache 表现更好。这让我有点惊讶,因为我听说过很多关于 Nginx + PHP-FPM 的好评。我当前的 Nginx 设置有点不合常规,PHP-FPM 也是如此

我可以进行哪些优化来加快 Nginx + PHP-FPM 组合的速度,使其优于 Apache 和 mo_php ?在我使用 ab 进行的测试中,Apache 的表现明显优于 Nginx(每秒请求数更高,测试完成速度更快)

我在 Google 上搜索了一下,但由于我从未使用过 Nginx、PHP-FPM 或 FastCGI,所以我不知道从哪里开始

PHP v5.2.13、Drupal v6、从源代码编译的最新 PHP-FPM 和 Nginx。Apache v2.0.63

ApacheBench Nginx + PHP-FPM

Server Software:        nginx/0.7.67
Server Hostname:        test2.com
Server Port:            80

Concurrency Level:      25
---> Time taken for tests:   158.510008 seconds
Complete requests:      1000
Failed requests:        0
Write errors:           0
---> Requests per second:    6.31 [#/sec] (mean)
Time per request:       3962.750 [ms] (mean)
Time per request:       158.510 [ms] (mean, across all concurrent requests)
Transfer rate:          181.38 [Kbytes/sec] received

ApacheBench Apache 使用 mod_php

Server Software:        Apache/2.0.63
Server Hostname:        test1.com
Server Port:            80

Concurrency Level:      25
--> Time taken for tests:   63.556663 seconds
Complete requests:      1000
Failed requests:        0
Write errors:           0
--> Requests per second:    15.73 [#/sec] (mean)
Time per request:       1588.917 [ms] (mean)
Time per request:       63.557 [ms] (mean, across all concurrent requests)
Transfer rate:          103.94 [Kbytes/sec] received

答案1

以下是一些可能性:

  1. 您已使用 mod_php 启用某种操作码缓存
  2. 您已在 apache 中打开 mod_cache
  3. 您正在使用 php-fpm 中的 TCP 连接方法。

请回复这些详细信息。

另外,尝试 apache + mod_fastcgi + apc + php-fpm。

并且,如果您在 nginx 中使用 if 条件进行重写规则,请切换到 try_files。if 有时会出现性能问题。

答案2

您是否可能启用了 APC 或其他与 apache 一起启用的加速器?我同意上面的发帖人的观点,需要有关您的配置的更多信息。

相关内容