Текущее состояние обслуживания приложения PHP 5.x на веб-серверах Apache, LightTPD и Nginx?
Занимая последние полтора года работы в области архитектуры / разработки стека MS, я не смог удержаться на вершине мира недавней эволюции веб-сервера на основе стека с открытым исходным кодом, как мне бы хотелось. Однако сейчас я строю архитектуру приложения / системы на основе стека с открытым исходным кодом, и, к сожалению, у меня нет времени, чтобы принять решение по каждому из вышеупомянутых веб-серверов. Поэтому я решил, что получу информацию от самого известного сообщества по системной архитектуре.
Это сайт, который является источником информации о конкретном домене и целевой аудитории с функциями, которые помогают пользователям не только находить информацию, но и по-разному взаимодействовать друг с другом по разным причинам.
Я выбрал стек с открытым исходным кодом для богатства ресурсов, которые он имеет, наряду с гораздо лучшими предложениями, чем стек MS (т.е. WordPress vs BlogEngine.NET). Я чувствую, что Java находится в центре этих стеков в этом отношении, хотя я не исключаю возможности использования его в определенных областях, не связанных с самим веб-приложением, таких как фоновые процессы.
Я уже пришел к выводу об использовании PHP (с использованием инфраструктуры CodeIgniter и APC), MySQL (InnoDB) и Memcached на CentOS. Я определенно обслуживаю статический контент на Nginx. Однако 3 упомянутых сервера не имеют единого мнения о том, какой из них лучше для динамического контента с точки зрения производительности. Кажется, у LightTPD все еще есть проблема утечки, которая исключает ее, если Nginx кажется, что она еще недостаточно развита для этого аспекта, и, конечно, Apache старается быть всем для всех.
Я все еще собираюсь скомпилировать выбранный вариант с максимально возможным количеством настроек производительности, таких как статическое связывание и т.п. Я полагаю, что смогу заставить Apache соответствовать двум другим в отношении обслуживания динамического контента с помощью этого процесса и не давать ему ничего статичного. Однако во время моего исследования кажется, что другие все еще заслуживают рассмотрения.
Поэтому, учитывая все обстоятельства, я хотел бы услышать, что все здесь говорят по этому вопросу. Спасибо!
3 ответа
Примите это с небольшим количеством соли, но у меня сложилось впечатление, что Apache будет несколько проще настроить для обслуживания PHP, чем два других сервера. И если вы правильно настроите Apache, то есть не загружаете ненужные модули, держите под контролем количество процессов / потоков и т. Д., То я думаю, что вы можете приблизить его эффективность к nginx или lighttpd. Я думаю, что многие люди имеют несколько преувеличенное мнение об улучшении, которое можно получить, используя lighttpd или nginx по сравнению с Apache для динамически генерируемых страниц.
Я лично думаю, что nginx легче настроить, чем Apache. Глядя на конфиги Apache, у меня болит голова.
Что касается конфигов, то сейчас я предпочитаю nginx + php-fpm + APC. У меня есть несколько клиентов, которые очень хорошо работают с этой конфигурацией, и они обычно мигрировали из установок на основе Apache. Очевидно, YMMV. знак равно
Поскольку вы упоминаете CodeIgniter, вы можете взглянуть на Kohana, который изначально был форком CodeIgniter, однако реализовал все OO на улучшенной концепции OO в php5. Я не говорю, что лучше, в конце концов, это вопрос личных предпочтений.