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

Самый быстрый вариант для веб-сервера PHP

Мне нужно обслуживать приложение PHP, которое обрабатывает множество запросов. Я хочу знать, есть ли реальная выгода в использовании чего-либо, кроме Apache, и каковы плюсы и минусы альтернатив.

У меня есть некоторый опыт использования lighttpd и nginx для приложений Rails. Они тоже хорошие соперники для PHP? Какие-нибудь важные приемы настройки?

Как насчет ускорителей PHP, можно ли их использовать с этими альтернативными серверами, это хорошая идея?

Я использую коробку OpenSolaris.

Не уверен, что это актуально, но позже я планирую установить прокси / кеш Varnish перед этим сервером.

Редактировать:

Хочу добавить, что я абсолютно не собираюсь трогать приложение. Это типичный беспорядок, которым славится PHP, и на него практически нет времени.

Apache - хорошая основа для mod-php, добавление APC для кэширования байтового кода, а также кеширование некоторых переменных очень поможет, на самом деле, это наиболее очевидная вещь, которую вы можете сделать для ускорения времени выполнения скриптов PHP (также используйте Yslow, чтобы ускорить интерфейс HTML и убедиться, что база данных оптимизирована).

Однако есть несколько предложений, которые я бы добавил, например, отказ от обслуживания изображений и другого статического контента из Apache. У меня есть отдельный (под) домен с выделенным сервером изображений (я использую thttpd, но nginx тоже вполне подходит). Тем не менее, обслуживание изображений с полностью отдельного доменного имени (или CDN) было бы еще лучше.

NginX также имеет то преимущество, что он может действовать как прокси, который имеет дело с входящими подключениями, а затем возвращает результаты обратно - это означает, что внутренние производственные процессы Apache2 / Mod_php могут работать полностью локально. -скорости сети, вместо того, чтобы ждать, пока клиенты веб-браузера наверстают упущенное.

Varnish может выполнять дополнительную работу помимо того, что может делать Nginx, но я не очень хорошо это знаю - возможно, вы можете использовать только один или другой, но вряд ли придется использовать оба.

nginx в сочетании с php-fpm и xcache обеспечит значительное улучшение скорости по сравнению с любым решением Apache.

В зависимости от вашего приложения, включающего что-то вроде кэш памяти может также обеспечить огромные преимущества кэширования.

Моему серверу Apache с mod_php не хватало памяти из-за сайта Wordpress. Поэтому после оптимизации Wordpress я перешел на Apache. Я обнаружил, что mod_fastcgi работает лучше, чем mod_fcgi. Перенос PHP из Apache уменьшил нагрузку на веб-сервер (с 38 до 4 МБ на процесс). Я также установил eAccelerators и обнаружил, что PHP работает быстрее. Кроме того, если на ваших страницах много включений (CSS и javascript), одним из приемов, которые я использовал с Wordpress, было сжатие включаемых файлов в один файл с минимальным количеством пробелов (но это может быть скорее артефактом Wordpress).

Поэтому я бы посоветовал увидеть, как перенос PHP из Apache (и в отдельный процесс с помощью mod_fastcgi [php-cgi]) помогает. Обратите внимание, что ускорители PHP увеличивают требования к памяти для процесса PHP (что является еще одной причиной, чтобы вывести его из процесса Apache).