Nginx против Apache: какой из них лучше для вас?

На протяжении двух десятилетий Apache доминировал на рынке веб-серверов, который с каждым днем сужается. Nginx не только догнал старейшего игрока на рынке, но и в настоящее время является фаворитом многих сайтов с высоким трафиком. Пользователи Apache могут с этим не согласиться. Поэтому не стоит спешить с выводами о том, какой веб-сервер лучше. Истина в том, что оба являются основой полных веб-стеков, и окончательный выбор сводится к индивидуальным потребностям.
Например, люди, работающие с сайтами на Drupal, часто выбирают Apache, в то время как пользователи WordPress, похоже, предпочитают Nginx, если не больше. Соответственно, наша цель — помочь вам лучше понять ваши собственные требования, а не предоставить универсальную рекомендацию. Сказав это, следующее сравнение между двумя дает точную картину.
Также читайте: 12 лучших программ с открытым исходным кодом, которые стоит попробовать в 2021 году
1. Популярность
До 2012 года более 65% веб-сайтов основывались на Apache, что во многом объясняется его историческим наследием. Это было одно из первых программных обеспечений, которое способствовало росту Всемирной паутины. Однако времена изменились. Согласно W3Tech.com, на 14 января 2019 года Apache (44.4%) лишь немного опережает Nginx (40.9%) по количеству сайтов, использующих их серверы. Вместе они доминируют на почти 85% рынка веб-серверов.

Когда речь идет о сайтах с высоким трафиком, следующий график интересен. Конечно, Nginx значительно опережает Apache, но отстает от серверов Google, которые поддерживают такие сайты, как YouTube, Gmail и Drive.

В какой-то момент большое количество веб-сайтов (включая этот сайт) мигрировало с Apache на Nginx. Очевидно, что последний рассматривается как более современный и модный веб-сервер. Сайты с высоким трафиком, работающие на Apache, такие как Wikipedia и New York Times, часто используют фронтенд-прокси HTTP, такой как Varnish.
Оценка: Разрыв в популярности между Apache и Nginx быстро сокращается. Но поскольку Apache все еще впереди по абсолютным числам, мы считаем этот раунд ничейным.
2. Скорость
Основная характеристика хорошего веб-сервера заключается в том, что он должен работать быстро и легко реагировать на подключения и трафик откуда угодно. Чтобы измерить скорость серверов, мы сравнили два популярных туристических сайта на основе Apache (Expedia.com) и Nginx (Booking.com). С помощью онлайн-инструмента под названием Bitcatcha были проведены сравнения для нескольких серверов и измерены по сравнению с эталоном Google в 200 мс. Booking.com на основе Nginx был оценен как “исключительно быстрый”. В то время как Expedia.com на основе Apache был оценен как “выше среднего и может быть улучшен”.
Используя оба туристических сайта много раз, я могу лично подтвердить, что Expedia немного медленнее возвращает результаты на мой запрос, чем Booking.

Вот сравнения между двумя серверами для нескольких других сайтов. Nginx действительно кажется быстрее во всех случаях ниже, кроме одного.

Оценка: Nginx выигрывает раунд скорости.
Также читайте: Как настроить бесплатный SSL-сертификат “Let’s Encrypt” в Nginx (Ubuntu)
3. Безопасность
И Nginx, и Apache очень серьезно относятся к безопасности своих сайтов. Нет недостатка в надежных системах для борьбы с DDoS-атаками, вредоносным ПО и фишингом. Оба периодически публикуют отчеты и рекомендации по безопасности, которые обеспечивают укрепление безопасности на каждом уровне.
Оценка: Мы считаем этот раунд ничейным.
4. Параллелизм
Существует мнение, что Apache каким-то образом не соответствует масштабам и возможностям Nginx. В конце концов, Nginx изначально был разработан для ускорения проблем со скоростью с обработчиками FastCGI и SCGI. Однако начиная с Apache 2.4 (который является стандартной версией) произошло резкое улучшение в количестве одновременных подключений. Насколько далеко это улучшение было достигнуто, стоит выяснить.
На основе стресс-тестов на Loadimpact.com мы снова сравнили Booking.com (Nginx) с Expedia.com (Apache). Для 25 виртуальных пользователей сайт на Nginx смог зафиксировать 200 запросов в секунду, что в 2.5 раза больше, чем 80 запросов в секунду у Apache. Очевидно, что если у вас есть выделенный сайт с высоким трафиком, Nginx является более безопасным выбором.

Оценка: Nginx выигрывает раунд параллелизма.
5. Гибкость
Веб-сервер должен быть достаточно гибким, чтобы позволять настройки. Apache делает это довольно хорошо, используя инструменты .htaccess, которые Nginx не поддерживает. Это позволяет децентрализовать обязанности администратора. Третьи лица и администраторы второго уровня могут быть предотвращены от доступа к основному серверу. Более того, Apache поддерживает более 60 модулей, что делает его высоко расширяемым. Есть причина, по которой Apache более популярен среди провайдеров совместного хостинга.

Оценка: Apache выигрывает этот раунд.
Другие параметры
В прошлом Nginx не очень хорошо поддерживал операционную систему Windows, в отличие от Apache. Это больше не так. Также Apache считался слабым для балансировки нагрузки и обратного прокси, что теперь изменилось.
Окончательный результат
Nginx с небольшим отрывом выигрывает этот конкурс 2-1. Тем не менее, объективное сравнение между Nginx и Apache по техническим параметрам не дает полной картины. В конечном итоге наш вердикт заключается в том, что оба веб-сервера полезны по-своему.
Хотя Apache следует использовать с фронтенд-сервером (Nginx сам по себе является одним из вариантов), Nginx может быть лучше с большим количеством настроек и гибкостью.