Назад | Перейти на главную страницу

Чего не хватает Nginx по сравнению с Apache?

Nginx считается более ресурсоэффективным и более простым в настройке, чем Apache. Мой друг сказал мне, что «он не может делать некоторые вещи, которые может делать Apache, но мне все равно это не нужно».

Тем не менее, мне любопытно: Что может Apache делать, а Nginx - нет? Мне не нужен исчерпывающий список, просто общее представление о сценариях, в которых Apache был бы лучшим выбором.

Я думаю, что самое главное, чего еще не хватает в Nginx, - это полная поддержка WebDAV. Практически все остальные аспекты охватываются либо основным, либо сторонним модулем.

Nginx не поддерживает такие вещи, как mod_php по дизайну, поэтому я не уверен, что вы можете сказать, что в Nginx отсутствуют эти части. Это больше похоже на то, что Nginx довольно убедительно говорит вам, что использовать это глупо.

Apache имеет большое количество доступных модулей, которые позволяют использовать некоторые сценарии развертывания, которые невозможны с Nginx.

Одним из примеров является mod_dav_svn для размещения Subversion через HTTP. это только доступно для Apache. Другими яркими примерами являются такие вещи, как mod_perl или mod_php. Хотя большинство традиционных настроек также можно выполнить через FCGI (или WSGI, или пассажира), наличие фактического переводчика в процессе может быть полезным, если вам нужно, например, реализовать собственные схемы аутентификации внутри веб-сервера (как это сделано для хостинга git или svn с Redmine / ChiliProject).

В общем, ваш друг прав: большинство распространенных сценариев развертывания также можно решить с помощью nginx, но Apache по-прежнему более гибок, если вам нужно создать еще несколько «специальных» вещей.

Коротко говоря, Apache имеет много плагинов и сообщества, созданного вокруг него. Nginx существует сравнительно недавно, поэтому у него еще нет кодовой базы сообщества.

Когда меня спрашивают, в чем разница, Nginx - это нож для стейка, он хорош для различных целей и отлично справляется с некоторыми задачами. Apache - это швейцарский армейский нож, у него масса различных функций, и он неплохо справляется со всеми из них.

Для начала, множество модулей и великолепная установленная база. Но это не совсем то, что Apache имеет на что вы должны смотреть, это то, что Apache делает: он лучше работает для обслуживания динамического контента, такого как PHP, Python, Perl, Java и т. д.

Конечно, вы можете сделать это и с Nginx (но это немного хакерское IMHO), но решения намного более проверенные и зрелые, работающие на Apache, чем на NginX, что, в свою очередь, намного лучше, чем Apache при обслуживании высоких нагрузок и превосходных перезаписчик / обратный прокси.

Для каждой работы подходящий инструмент!