>>127587 Никто не "хейтит" nginx, с ним просто
не нужно связываться. Это тебе любой админ расскажет, ты только одно слово скажи:
nginx. nginx это тормозное глючное говно. Как один лоровец его метко описал, nginx — "клёвая утилита для вывода ошибки 500". А если кто кого и хейтит, так это услышавшие только вчера про новомодные Быстрые Асинхронные™ сервера пользователи nginx хейтят Apache, за "медленность". Ох, КАК ЖЕ они его хейтят.
Обычно администраторы/программисты/пользователи при выборе программного обеспечения выбирают между функциональностью и производительностью. nginx не даёт ни того, ни другого.
Функциональность nginx:
- Половина действительно нужных функций, присутствующий во всех других серверах ГОДАМИ (в Apache, например, с самых первых версий), просто отсутствует. Зато эти функции присутствуют в платной версии nginx.
- Прокси есть только для HTTP 1.0. Если бы была поддержка HTTP 1.1, то была бы более высокая производительность. Знаете, что защитники nginx на это ответили? "HTTP 1.0 проще и быстрее в реализации. ПОТОМУ ЧТО НЕ ПОДДЕРЖИВАЕТ KA." В платной версии, разумеется, исправлено.
- Нету многой базовой функциональности веб-сервера. Например, нету поддержки CGI (sic!). Не поддерживается CGI по идеологическим причинам (типа низкая производительность). Но при этом вместо нативной поддержки CGI они предлагают костыль (внешний FastCGI-to-CGI wrapper), который только добавляет оверхеда и таки уменьшает производительность. На этом пункте можно и закончить, ибо, как вы понимаете, мало кто захочет заморачиваться с сервером без нативного CGI.
Что же насчёт производительности? Пикрелейтед. Свежий бенчмарк, 2016. Два 4C/8T зиона 2.13GHz. Статическая страница index.html 7 байт.
lighttpd написан в 2003 году: на 8 ядрах 130к запросов в секунду без просадок. Cherokee в 2001: на 8 ядрах 90к запросов в секунду. Эти сервера обладали и обладают огромной производительностью и масштабируемостью. Возможно, ты скажешь, что как бы "производительность не главное", что в контексте Apache vs nginx уже смешно, но нет. У них богатый функционал: например, Cherokee поддерживает SCGI, WSGI (нативная поддержка, модуль на Си) и имеет веб-интерфейс для настройки сервера. Последнего даже у Apache нет. Их можно использовать как полноценную замену Apache, в отличие от nginx, ибо они располагают всем нужным функционалом (
mod_rewrite
, CGI и тому подобное добро).
А у nginx всего 35к запросов, при том он ведёт себя
нестабильно. Даже Apache выдаёт 60к! То есть Apache на мощном сервере почти в два раза быстрее nginx, и это ещё без настройки. Вы, кстати, поглядите, какой у Apache график ровный. Apache очень стабильный и масштабируется линейно с увеличением числа ядер (7,5-15-30-60к запросов для 1-2-4-8 ядер соответственно). А у nginx с многопроцессорностью и многопоточностью серьёзные проблемы: на 1-2 ядрах он на равне с другими серверами, а при увеличении количества ядер он просто не может их задействовать.
nginx, кстати, позиционируется как реверс-прокси-сервер и как сервер для FastCGI. Откровенно говоря, есть и лучшие реверс-прокси и по производительности, и по функционалу (Varnish, например. он есть на пикче). А lighttpd заметно обходит nginx, когда речь заходит о
поддержке и
производительности FastCGI (nginx не поддерживает "статический" FastCGI и поддержка FastCGI у него неполная).
Но несмотря на всё это, почему-то в один момент начался хайп по "асинхронным" серверам, все быдлоадмины выкинули Apache на помойку, но при этом перешли не на нормальные сервера вроде lighttpd (который, кстати, активно использовался и нагруженными сайтами, и простыми пользователями ещё задолго до этого хайпа), а на это поделие. Наверное, потому что про другие сервера они и не слышали. Сейчас можно увидеть, как во всяких бложиках и Q&A-сайтах активно пиарится nginx с помощью демагогии (мол, "более быстрый" PHP, нежели на Apache, что откровенная ложь) и при одном упоминании nginx он тут же получает поддержку и лучи любви, а про другие сервера все просто "забыли".
Не то чтобы nginx прямо-таки "плохой", просто если выбирать объективно, то нет никаких причин выбирать nginx. Нужна функциональность — Apache. Нужна производительность —
настрой Apache используй lighttpd и Cherokee, либо используй несколько серверов (Apache + lighttpd/Cherokee) или даже реверс-прокси с ними же настрой или используй Squid/Varnish.
Хотя если говорить честно, то если ты попытаешься с помощью nginx обслуживать что-то сложнее статического контента, то ты гарантированно будешь наступать на грабли.
Кого я обманываю? Ты трижды пожалеешь, что установил это поделие ещё на этапе редактирования конфига!А IIS это вообще лол. Мы тут, вообще-то, серьёзные вещи обсуждаем.