Назовите основные отличия между веб-серверами Apache и Nginx.
Уровень: Middle
Ответ
Apache и Nginx — самые популярные веб-серверы, но они имеют разные архитектуры. Apache исторически использует модель с процессами/потоками: каждый запрос может обрабатываться отдельным потоком (или процессом) — это гибко, но при большом числе одновременных запросов потребляет много памяти. Nginx — событийно-ориентированный (асинхронный) сервер: он способен обслуживать множество соединений в одном потоке, используя неблокирующий ввод-вывод, что делает его очень эффективным по памяти при высокой нагрузке. Apache имеет богатую модульную систему и, например, поддерживает .htaccess-файлы для локальной конфигурации каталогов, чего нет в Nginx (конфигурация Nginx глобальна и обычно проще). Nginx обычно быстрее раздаёт статический контент, Apache гибче на уровне модулей (есть модули для PHP, Perl и т.д.). В современном стеке часто используется связка: Nginx как фронтенд (reverse proxy) для отдачи статики и балансировки, а Apache (или PHP-FPM) — для генерации динамики.