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

Что быстрее при обслуживании страниц PHP, Apache или NGINX

Я довольно много читал об основных преимуществах использования 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.