Сегодня замечательный день. Я познакомился с nginx!

Mar 04, 2010 14:11


Так получилось, что на моём сервере крутится один суровый известный ресурс. И крутят его не лыком шитые дизайнеры. Когда я начал откровенно тупить, то они попросили sudo-шный доступ и поставили мне nginx. Единственное, что я понял, так это то, что он как-то оптимизирует запросы. Я немного почитал что про это думает интернет, ужаснулся от слога википедии, почитал простое, но наполненное терминами на страничке автора описание. Кстати, я так и не понял зачем оно ещё и почту проксирует. Далее я понял, что у меня ngnix является фронтендом к apache. А вот потом я попал на замечательную статью (а это часть 2), которая описывает не только саму суть, но и раскладывает всё по полочкам даже такому человеку, который потоки от процессов отличает очень слабо:

Итак, представим следующую ситуацию: на HTTP-сервер с каналом в 1 Гбит/с подключается 200 клиентов с каналом по 256 Кбит/с:

Что происходит в случае Apache? Создается 200 потоков/процессов, которые относительно быстро генерируют контент (это могут быть как динамические страницы, так и статические файлы, читаемые с диска), но медленно отдают его клиентам. Операционная система вынуждена справляться с кучей потоков и блокировок ввода/вывода.
Nginx в такой ситуации затрачивает на каждый коннект на порядок меньше ресурсов ОС и памяти. Однако тут выявляется ограничение сетевой модели nginx: он не может генерировать динамический контент внутри себя, т.к. это приведет к блокировкам внутри nginx. Естественно, решение есть: nginx умеет проксировать такие запросы (на генерирование контента) на любой другой веб-сервер (например, все тот же Apache) или на FastCGI-сервер.

В довершение понимания ещё можно почитать интервью с разработчиком. И ещё я всё никак про это название понять не мог. Всё мне казалось, что это искаженное слово «unix», а сейчас я знаю, что это «engine x«.

Ну и в завершение: я разобрался на что настроили nginx суровые дизайнеры и настроил профиль для своего сайта. Теперь картинки отдаются стабильнее и быстрее. Особенно банер в заголовке сайта. Я доволен собой.
(c)

linux, nginx

Previous post Next post
Up