Текущее состояние обслуживания приложений PHP 5.x на веб-серверах Apache, LightTPD и Nginx?

Текущее состояние обслуживания приложений PHP 5.x на веб-серверах Apache, LightTPD и Nginx?

Застряв на должности разработчика архитектуры/стека MS в течение последних полутора лет, я не смог оставаться в курсе последних событий в мире веб-серверов с открытым исходным кодом на основе стека больше, чем мне бы хотелось. Однако сейчас я создаю архитектуру приложений/систем с открытым исходным кодом на основе стека, и, к сожалению, у меня нет времени, чтобы провести тщательное тестирование каждого из вышеупомянутых веб-серверов самостоятельно, чтобы принять решение. Поэтому я решил получить информацию от самого известного сообщества по архитектуре систем.

Это сайт, представляющий собой источник информации, касающейся определенной области и целевой аудитории, с функциями, помогающими пользователям не только находить информацию, но и взаимодействовать друг с другом различными способами по разным причинам.

Я выбрал стек с открытым исходным кодом из-за богатства ресурсов, которые он имеет, а также из-за гораздо лучших предложений, чем стек MS (например, WordPress против BlogEngine.NET). Я чувствую, что Java находится ближе к середине этих стеков в этом отношении, хотя я не исключаю возможности его использования в определенных областях, не связанных с самим веб-приложением, например, фоновых процессах.

Я уже пришел к выводу об использовании PHP (используя фреймворк CodeIgniter и APC), MySQL (InnoDB) и Memcached на CentOS. Я определенно обслуживаю статический контент на Nginx. Однако 3 упомянутых сервера не пришли к единому мнению о том, какой из них лучше для динамического контента с точки зрения производительности. Похоже, у LightTPD все еще есть проблема с утечкой, что исключает ее, если она есть, Nginx, похоже, все еще недостаточно зрел для этого аспекта, и, конечно, Apache пытается быть всем для всех.

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

Итак, принимая во внимание все обстоятельства, я бы хотел услышать, что все здесь говорят по этому вопросу. Спасибо!

решение1

Отнеситесь к этому с долей скепсиса, но мое мнениевпечатлениезаключается в том, что Apache будет несколько проще настроить для обслуживания PHP, чем два других сервера. И если вы правильно настроите Apache, т. е. не будете загружать ненужные модули, держать под контролем количество процессов/потоков и т. д., то я думаю, вы сможете сделать его достаточно близким по эффективности к nginx или lighttpd. Я думаю, что многие люди имеют несколько преувеличенное мнение об улучшении, которое можно получить, используя lighttpd или nginx по сравнению с Apache для динамически генерируемых страниц.

решение2

Лично я считаю, что nginx проще настроить, чем Apache. Просмотр конфигураций Apache обычно заставляет мою голову болеть.

Что касается конфигураций, то сейчас я предпочитаю nginx + php-fpm + APC. У меня есть несколько клиентов, которые прекрасно работают с этой конфигурацией, и они обычно мигрировали с установок на основе Apache. Очевидно, YMMV. =)

решение3

Поскольку вы упомянули CodeIgniter, возможно, вам захочется взглянуть на Kohana, которая изначально была ответвлением CodeIgniter, однако реализовала весь OO-проект на основе улучшенной OO-концепции php5. Я не говорю, что какой-либо из них лучше, в конце концов, это вопрос личных предпочтений.

Связанный контент