Назад | Перейти на главную страницу

Сравнение 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 (большее количество запросов в секунду и завершение тестов намного быстрее)

Я немного погуглил, но поскольку я никогда не использовал 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. Вы включили какой-то кеш-код операции с помощью mod_php
  2. Вы включили mod_cache в apache
  3. Вы используете метод TCP-соединения в php-fpm.

Отправьте ответ с этими деталями.

Также попробуйте apache + mod_fastcgi + apc + php-fpm.

И, если вы используете условие if в nginx для правил перезаписи, вместо этого переключитесь на try_files. если иногда возникают проблемы с производительностью.

Возможно ли, что у вас включен APC или другой ускоритель с apache? Я согласен с плакатом выше, что требуется дополнительная информация о вашей конфигурации.