Сравнение 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
2 ответа
Вот несколько возможностей для этого:
- Вы включили какой-то кэш кода операции с помощью mod_php
- Вы включили mod_cache в apache
- Вы используете метод TCP соединения в php-fpm.
Отпишитесь с этими подробностями.
Также попробуйте apache + mod_fastcgi + apc + php-fpm.
И, если вы используете условие if в nginx для правил перезаписи, переключитесь на try_files. если иногда возникают проблемы с производительностью.
Возможно ли, что у вас есть APC или другой акселератор с Apache? Я согласен с постером выше, что необходима дополнительная информация о вашей конфигурации.