Веб-серверы
nginx против Apache: какой сервер выполняет какую рабочую нагрузку?
nginx и Apache — это два механизма, на которых может быть построен стек хостинга, и борьба заканчивается в тот момент, когда рабочая нагрузка получает имя. nginx — это управляемая событиями малозатратная машина для статического контента и обратного проксирования; Apache — это сервер приложений с большим количеством модулей, переопределение каталогов и экосистема которого обеспечивают общий хостинг. Это честная таблица решений, лежащая в основе обеих специальных статей.
Главное
- Модель параллелизма решает преимущество: асинхронный цикл событий nginx обрабатывает тысячи одновременных соединений с несколькими рабочими процессами, поэтому он доминирует над уровнями с большим количеством статики и обратными прокси-серверами; MPM событий Apache закрывает большую часть этого разрыва, но по-прежнему выделяет больше ресурсов на одно соединение на том же оборудовании.
- Философия конфигурации противоречит: Apache поддерживает .htaccess и переопределения для каждого каталога (удобство создания общего хостинга), в то время как конфигурация nginx является плоской для каждого сайта, включая файлы с дисциплиной перезагрузки; повседневный эффект определяется командой, кто и где редактирует конфиги.
- Гибридный стек является законным, а не отговоркой: nginx впереди в качестве терминатора TLS и статического сервера, Apache сзади для приложения — это проверенная в боевых условиях форма, которая сохраняет инструменты htaccess, одновременно обеспечивая производительность Nginx Edge; стоимость — это еще один уровень устранения неполадок и мониторинга.
- Здесь каждый движок выигрывает безоговорочно: nginx выигрывает в проксировании с интенсивным подключением, работе с периферийными устройствами и медленном истощении клиентов; Apache выигрывает в возможности настройки для каждого каталога, совместимости с устаревшими модулями и совместно используемом хостинге mod_security/mod_php-class, где ни одна другая экосистема не является столь зрелой.
- LiteSpeed — это третий вариант, к которому обращаются многие хосты (о нем рассказывается в нашей специальной статье): встроенная совместимость с Apache с параллелизмом, управляемым событиями, лицензия на каждое ядро, поэтому для экономики общего хостинга существует средний путь «заменить Apache, сохранить конфигурацию».
- Процедура принятия решения, которая применима ко всей нашей категории веб-серверов: назовите рабочую нагрузку (nginx на периферии; Apache за приложениями с большим количеством htaccess), сохраните обе роли явными в гибридном режиме, сравните собственный трафик (а не журнальные тесты) и помните, что это единственное решение, которое вы можете повторять, поскольку оба движка успешно сосуществуют.
Заметка из практики
Клиент, который научил нас гибридному стеку: nginx впереди для TLS и статики, Apache позади, несущий двенадцатилетний опыт работы с htaccess, который никто не осмелился переписать. Честный ответ был не «перейти на nginx», а «назвать рабочую нагрузку на каждый уровень». Они до сих пор управляют этой формой, невозмутимые и украшенные безотказно.
Частые вопросы
Нужно ли нам вообще выбирать что-то одно?
Нет: обратный прокси-сервер перед сервером приложений — это обычная современная форма. Единственное реальное решение — какой двигатель куда двигаться; участие в обоих случаях является стандартной практикой, а не признанием поражения.
Что быстрее для WordPress?
Благодаря хорошим уровням кэширования все три (nginx, Apache, LiteSpeed) хорошо служат WordPress; В наших тестах порядок завершения сводился к настройке кэша, а не движка. Выбор механизма имеет большее значение на периферийных уровнях и уровнях прокси, чем за кешем.
Что легче выучить?
Оба можно изучить за неделю для базового виртуального хостинга и TLS; трудности различаются: документация Apache более знакома ветеранам отрасли, конфигурация nginx короче, но ручки проксирования доступны раньше.
Есть ли важные различия в безопасности?
Оба содержат CVE и оба безопасны в поддерживаемых версиях; Поверхность риска — это поверхность конфигурации, культура .htaccess и устаревшие модули для Apache, скомпилированные модули сторонних производителей, а также ошибки порядка конфигурации для nginx. Скорость патча имеет большее значение, чем марка двигателя.
Как мы берём на себя веб-серверы
Это то, чем мы занимаемся каждый день: Настройка, оптимизация и безопасность веб-серверов в производственной среде и при разработке. Наша услуга Оптимизация скорости сайтов и Администрирование серверов закрывает задачу целиком — оценка, внедрение, круглосуточный мониторинг и экстренная реакция в течение 30 минут.