В настоящее время я установил Apache на свой 12.04 32-битный сервер Ubuntu, но мне интересно перейти на Nginx. Я прочитал ряд сравнений и обзоров, где Nginx работает быстрее, чем Apache, обслуживающий статический контент, но они не охватывают производительность PHP.
Вот мой вопрос: Как Nginx сравнивается с Apache в отношении производительности обработки PHP? Nginx также быстрее для PHP?
Обычно говорят, что nginx работает быстрее, когда много статического контента, а количество пользовательских запросов велико. Если у вас небольшой веб-сайт, вы можете выбрать свой веб-сервер. Но чтобы ответить на сам вопрос, разница в самой обработке PHP должна быть незначительной.
Вы можете использовать nginx, он очень быстрый по сравнению с Apache2 со статическим и динамическим ботом, а время отклика также быстрее других
Он также отлично работает с php, rails и другими скриптовыми языками.
Nginx с PHP-FPM, как правило, быстрее, чем Apache с mod_php
, но в результате повышение производительности зависит от среды (сложность кода PHP, пользователи / нагрузка, оборудование и т. Д.), Где вы развертываете свое решение или веб-приложение. .
Нам нужно глубже вникнуть в веб-серверы, чтобы понять, почему нет простых сравнений производительности PHP для веб-серверов.
Apache использует mod_php
для интерпретации кода PHP. Lighttpd , конкурент Nginx в первые дни, использовал свою собственную spawn_fcgi
(еще одну реализацию FastCGI ) для повышения скорости и позволил обслуживать больше пользователей с такими же или меньше ресурсов как у Apache. Таким образом набирает популярность.
Nginx немного отличается от Lighttpd. На сегодняшний день Nginx поддерживает множество функций и может быть настроен на работу spawn_fcgi
, но он никогда не был так тесно связан с ним, как Lighttpd. Это позволило переосмыслить поддержку PHP для веб-серверов и, вероятно, привело к проекту FastCGI Process Manager (PHP-FPM).
PHP-FPM доступен в Ubuntu через пакет php-fpm
по состоянию на 12.04. Пакет Ubuntu поставляется с предварительно сконфигурированным, но стоит почитать о том, как точно настроить параметры пула для ваших нужд (особенности: сложность кода, доступная память и мощность процессора, время выполнения). Также доступны руководства, в которых объясняется, как настроить выделенные пулы для различных приложений, что повышает не только производительность, но и безопасность. Если вы заботитесь о производительности, вам нужно время, чтобы ознакомиться с основными компонентами вашего нового стека серверов.
Пожалуйста, прочтите документацию по Nginx в англоязычном вики-проекте . Я нашел, что это очень полезно для понимания того, как настроен Apache, почему Nginx делает вещи по-другому (например, if
- зло ) и как вы достигаете улучшения скорости с Nginx.
Если вы замените Apache на Nginx и попытаетесь настроить его так же, как Apache, вы не получите большого улучшения скорости, иначе ваша конфигурация просто не будет работать.
Nginx в основном стремится уменьшить сложность, в то же время предоставляя широкий набор функций.
И кто сказал, что вы не можете запустить Apache за Nginx?
Вот сравнение между Apache и Nginx, перечисляющее некоторые преимущества и недостатки.
Apache, напротив, подходит к большому количеству запросов, раскручивая больше процессов для их обработки, обычно занимая при этом много оперативной памяти. А иногда Apache начинает беспокоиться о размерах своего продукта. Apache доступен в репозиториях пакетов Ubuntu с быстрым sudo apt-get install apache2
.
Nginx (произносится «engine-ex») - это легкий веб-сервер с репутацией скорости, скорости, скорости. Он принципиально отличается от Apache - Apache является приложением, управляемым процессами и потоками, но Nginx управляется событиями. Практический эффект этого конструктивного различия состоит в том, что небольшое количество «рабочих» процессов Nginx может пахать через огромные стеки запросов, не ожидая друг друга и не синхронизируя; они просто «закрывают глаза» и едят слона пословиц так быстро, как они могут, один укус за раз.
Разница кратко суммируется в цитате Криса Ли о том, зачем использовать Nginx? страница: «Apache похож на Microsoft Word, у него миллион вариантов, но вам нужно только шесть. Nginx выполняет эти шесть задач, и пять из них в 50 раз быстрее, чем Apache». Apache, оба являются программным обеспечением с открытым исходным кодом, и в обоих лагерях есть сообщество активных сторонников. Nginx доступен в репозиториях пакетов Ubuntu с быстрым sudo apt-get install Nginx
.
В конце концов, веб-серверы Nginx и Apache являются надежными решениями, хотя каждый из них имеет свои сильные стороны в определенных ситуациях. Основными преимуществами Nginx являются быстрое обслуживание статических веб-страниц и незначительное потребление памяти и аппаратных ресурсов. Apache - установленная и универсальная рабочая лошадка с обширной доступностью модулей и документацией. В зависимости от потребностей вашего бизнеса и технических требований, то одно или другое, или даже их комбинация, может быть правильным для вас.
Надеюсь, что это поможет.
Источник: Lee Hutchinson & amp; Лукаш Куджава sup>