Я довольно много читал об основных преимуществах использования NGINX над Apache для обслуживания статические файлы. Однако я никогда не видел статьи, в которой говорилось бы о Apache и NGINX для обслуживания страниц PHP.
Вопрос: что быстрее при подаче PHP страниц, Apache или NGINX?
Лично я думаю, что nginx обеспечивает правильное разделение между тем, что он делает сам (получение и обработка HTTP-запросов), и тем, что делегирует другим процессам (динамическое создание страниц). Хотя настроить Apache для обслуживания запросов PHP не так сложно, выполнение всего в Apache представляет собой небольшую проблему безопасности и конфигурации (все файлы, к которым обращаются все сценарии, запущенные всеми пользователями на сервере должен быть доступным для чтения / записи пользователю, от имени которого работает Apache, что означает, что сценарии PHP одного пользователя могут просматривать данные других пользователей); запуск каждого PHP-сайта в качестве собственного пользователя в собственном контексте FastCGI - гораздо лучший вариант (за счет немного большей предварительной настройки, пока вы не настроите автоматизацию создания вашего сайта, чтобы делать правильные вещи).
Что касается «быстрее», то Apache с mod_php, вероятно, будет быстрее выполнять один запрос, пока машина не ограничена ресурсами (переход к внешнему прослушивателю FCGI, а затем обратно не так быстро). Однако Apache намного толще (особенно при работе с mod_php), поэтому вы сможете обслуживать больше трафика с помощью nginx до того, как вам понадобится перейти на более крупный сервер.
Автор nginx говорит, что nginx предназначен для обслуживания статических файлов и является внешним интерфейсом, перенаправляя запросы, требующие динамических страниц, на другие серверы, такие как apache.
Еще одна хорошая идея - кэшировать динамический запрос apache с помощью nginx, если данные редко обновляются, например, архивное сообщение в блоге.
В большинстве случаев nginx. Для высоконагруженных проектов отличный выбор - nginx + php + php-fpm.