По-поводу nginx пишут много всякой хуйни, давайте я вам расскажу, чтобы не Латынина вам рассказывала.
Nginx - это не самый популярный в мире веб-сервер.
Но это программа, без которой никакой популярный веб-сервер в общем случае не обходится.
Поясняю на пальцах.
Когда вы пишете в адресной строке вашего браузера (торкаете на ссылку)
www.foo.com/link, ваш браузер обращается к
www.foo.com и передает ему (по порту, скажем, 80, но это неважно) запрос: «GET /link». Запрос посложнее, но это тоже неважно. Важно, что на порту 80 слушает программа, называемая веб-сервер. И она в ответ на этот запрос выдает в порт текст страницы, которую вы увидите в своем браузере.
В простом случае текст страницы берется из файла. В общем случае его генерирует программа, которую запускает веб-сервер. Ну, например, морда фейсбука формируется для каждого своя в каждый момент времени. Поэтому веб-сервер должен уметь запускать программы и делать еще много всякой разной хуйни. То есть, это сложная программа, которая тащит за собой много чего.
Теперь давайте представим себе, что два запроса поступают практически одновременно. Программа не сможет обработать второй, пока она не обработала первый. Значит, второй будет потерян. Чтобы этого не происходило, программисты (которых надо убить) придумали многозадачность. На порту 80 висит одна программа, которая слушает. А когда поступает запрос, она создает в памяти копию себя, отдает ей запрос и продолжает слушать. Так в unix, в винде поизящнее, но это частности. Все равно вот что:
Веб-сервер, который обрабатывает запрос, все равно программа сложная и тяжелая. В общем случае это Apache. Сервер-швейцарский нож. На нем можно реализовать ВСЁ. Поэтому весь интернет на нем и работает.
А теперь внимательно. На каждой веб-странице есть много чего. Текст, верстка, картинки. Текст надо достать из базы данных, верстку надо создать программой по запросу, а картинки просто отдать с диска. Это задачи совершенно различной сложности. Но каждую из них выполняет одинаковая копия процесса веб-сервера. И запускает программу, которая формирует страницу. И просто отдает картинку в пару килобайт. А процесс на каждую задачу один - здоровенный, могучий, универсальный Apache.
Ну то есть, когда ваш бложик начинает читать больше, чем несколько человек, ваш сервер (который компьютер) начинает дохнуть, потому что ему не хватает памяти… (тут дальше про своп должно быть, но это вам вообще ни к чему). Потому что он на каждый чих (а один ваш запрос страницы - это десятки запросов всего того, что есть на этой странице) запускает большой и толстый процесс. И не один, а много (потому что один ваш запрос страницы - это десятки запросов всего того, что есть на этой странице).
Вот именно с такой проблемой и столкнулся Игорь Сысоев когда-то давно. И придумал вот что: веб-сервер, который ни хуя не умеет. Ну, кроме того, чтобы отдать картинку или файл с диска. Но сделать это максимально быстро и с минимальными затратами ресурсов компьютера.
Это и есть nginx. Это простой и очень быстрый веб-сервер, который сидит ПЕРЕД большим и толстым веб-сервером Apache. И когда ваш браузер обращается к нему - он смотрит, нет ли уже готовых сгенерированных страниц. И если они есть - он их моментально отдает. Не говоря о картинках, которые он тоже отдает без малейших вопросов. Но вот если сгенерированной страницы нет, или если та, что была сгенерирована, устарела (время может исчисляться секундами, есть и другие критерии) - то тогда nginx уже обращается к Apache, большому и толстому, и просит его сделать новую страницу. И тот, кряхтя, делает.
Ну то есть, как вы понимаете, до толстого Apache доходит, положим, каждый десятый, а то и сотый запрос.
А это значит, что производительность вашего веб-сервера возрастает в десять, в сто раз.
Всё это условно, конечно, чтобы для популярности. На самом деле nginx умеет много чего больше. Но это вопросы второстепенные.
Мне просто хотелось, чтобы вы понимали, о чем идет речь.
И да: nginx использует не то, что треть интернета. Его используют ВСЕ, кто не лох. И очень здорово, что таковых уже треть интернета.