Вышел новый стабильный релиз HTTP-сервера nginx 0.5.33 (http://www.sysoev.ru/).Изменения:
- По умолчанию команда SSI echo использует кодирование entity.
- Добавлен параметр encoding в команде SSI echo.
- Почтовый прокси-сервер разделён на три модуля: pop3, imap и smtp.
- Новые параметры конфигурации --without-mail_pop3_module, --without-mail_imap_module и --without-mail_smtp_module.
- Новые директивы smtp_greeting_delay и smtp_client_buffer модуля ngx_mail_smtp_module.
- Директивы server_name и valid_referers теперь поддерживают регулярные выражения.
- Директивы "server_name", "map", and "valid_referers" поддерживают маски вида "www.example.*".
- sub_filter не работал с пустой строкой замены.
- Устранены проблемы с парсингом в sub_filter.
- Рабочий процесс мог зациклиться при использовании memcached.
- nginx распознавал параметры "close" и "keep-alive" в строке "Connection" в заголовке запроса только, если они были в нижнем регистре; ошибка появилась в 0.5.32.
- При использовании разделяемой библиотеки PCRE, расположенной в нестандартном месте, nginx не запускался на Solaris.
URL: http://www.sysoev.ru/
Новость: http://www.opennet.me/opennews/art.shtml?num=12717
Хороший мужик, этот Сысоев. Спасибо ему и денежкам яндекса!
Тьфу, то-есть рамблеру спасибо!
Да, это пожалуй единственный хоть чем-то полезный продукт из тех, к которым приложил руку Рамблер.
дааа. очень хорошую вещь делает.
поклон.
Да, не раз возникало желание найти этого Сысоева и со всей силы и от всей души угостить его ящиком пива и/или коньяком. )
а я вот уже год как перебрался с nginx на lighttpd. изначально, от того, что понадобился SCGI, которого в nginx я не обнаружил. но посмотрев внимательно на lighttpd я решли полностью отказаться от nginx. фичей у lighttpd больше. в памяти он занимает раза в три меньше места (один процесс)на мой взгляд, nginx это то, что нужно именно Сысоеву (честь ему и хывала!); это очень специализированная вещь... излишне специализированная. скажем, ну нафига мне в веб сервере поддержка почтовых протоколов? (я не Сысоев и не занимаюсь rambler-mail'ом) и почему я не могу на веб-сервере запустить обычную CGI? (понятно, что медленные CGI сложно поддержать в однопроцессовом сервере, но можно же? просто Сысоеву это не нужно и этого нет) то есть, имеются (прекрасно выполненные) не нужные (в обычной жизни) вещи, и нет нужных вещей.
nginx -- лучшее решение для вас, но только если вы -- Сысоев :)
>в памяти он занимает раза в три меньше места (один процесс)тут долго ржал.
тебе повезло, ты можешь веселиться бесконечно, начиная отсюда, и дальше пока гугл не кончится :)
http://hostingfu.com/article/nginx-vs-lighttpd-for-a-small-vps
>тебе повезло, ты можешь веселиться бесконечно, начиная отсюда, и дальше пока гугл
>не кончится :)
>http://hostingfu.com/article/nginx-vs-lighttpd-for-a-small-vpsЗабавно - но в минусах lighttpd:
* Stability (or lack of according to the RoR folks). I had quite a lot of issues using Lighttpd as proxy+HTTPS front-end for our Python stuff, but the same app runs fine with just lighttpd + proxy without HTTPS.
* Mod_rewrite (or again, lack of it). Built-in rewriting engine sucks, and porting Apache mod_rewrite rules over can be non-trivial sometimes. Update: Here’s an article I have written on Drupal clean URL on Nginx and Lighttpd, which looks at the URL rewrite options of these two web servers.
* Memory leak. The RSS of my lighty process grows by about 1.5Mb per day, but then I don’t have lots of traffic (less than 50k requests a day). At the end I just need to restart it once a week. Many people have far worse memory leaking issues I heard.:)
Забавные минусы для nginx.
сравнение, ссылку на которое Вы привели, говорит только в пользу nginx. помоему nginx изначально делался и делается именно для отличного проксирования и он не замена апачу.
>Забавно - но в минусах lighttpd:
> * Stability (or lack of according to
>the RoR folks). I had quite a lot of issues using
>Lighttpd as proxy+HTTPS front-end for our Python stuff, but the same
>app runs fine with just lighttpd + proxy without HTTPS.HTTPS не гонял но без него все офигительно стабильно.Гонял тесты софтинкой httpload - ему пофиг :)
> * Mod_rewrite (or again, lack of it). Built-in
>rewriting engine sucks,А меня порадовало.Просто и свое дело делает.Как оно там у апача - я особо не ффтыкал.Понятно что тем кто привык к чему-то одному все остальное кажется неудобным, но это уже проблемы конкретного субъекта а не софта.
> * Memory leak. The RSS of my lighty
>process grows by about 1.5Mb per day, but then I don’t
>have lots of traffic (less than 50k requests a day).Ок, как это воспроизвести?У меня последний .18 если что.Достаточно будет отдать 1 000 000 раз файл?Или надо хитрые модули с нетривиальными настройками и что там еще?
>nginx изначально делался и делается именно для отличного проксирования и он
>не замена апачу.Дык какой же это плюс?Лайт вполне себе способен быть полноценным сервером.Nginx в принципе тоже, но его незаточенность на это как раз мну и отпугнула при выборе легкого сервака для своих нужд.
Кстати у этого перца гента и древнючая версия лайта .13 - особо доверия не внушает если честно.
>Кстати у этого перца гента и древнючая версия лайта .13 - особо
>доверия не внушает если честно.Перепроверил с пристрастием.Как минимум для базовой части сервера + простых модулей нужных для отдачи файла с сервака - все ок.Вы и правда думаете что в гугл и википедии заседают идиоты которые бы не заметили утечек или которые бы перлись от рестартов демонов? 8)
Моя конфигурация (банальный десктоп):
Машина: AMD Athlon 64 3800+ x2, 1Gb RAM, etc.
Система: Kubuntu x64 версии 7.10
Сервер: lighttpd 1.4.18 (дефолтный, из репозиториев системы)
Модули при эксперименте: "mod_alias", "mod_access", "mod_status", "mod_accesslog"Что делалось?
1) Засек потребление памяти демона сразу после его старта.Может и необъективно ибо неустоявшийся режим.Но тестировать так уж по честному.Итого имеем:
VmSize: 45460
VmRss: 9242) Миллион запросов, прямо к локалхосту (для скорости), 500 в параллель.Использовалась утилитка http_load (можно взять оную на сайте сервера thttpd - замечательная штука для проверки сервера). В файлике urls - одна урла, 1 файл около 5 кил весом (4.7 кб чтоли).
Команда соответственно такая:
# ./http_load -checksum -verbose -parallel 500 -fetches 1000000 urls
--- 60.0011 secs, 565964 fetches started, 565934 completed, 30 current
1000000 fetches, 500 max parallel, 4.804e+09 bytes, in 105.534 seconds
4804 mean bytes/connection
9475.63 fetches/sec, 4.55209e+07 bytes/sec
msecs/connect: 4.04955 mean, 9003.25 max, 0.024 min
msecs/first-response: 1.26731 mean, 659.119 max, 0.129 min
HTTP response codes:
code 200 -- 10000003) Смотрим результат для демона опять:
VmSize 47036
VmRss 2692Казалось бы утечки памяти???Ха.Как бы не так.Демон просто вышел на установившийся режим.Доказательство?Легко! :)
4) Прогоняем скачку миллиона файлов еще 4 раза, глядя на потребление RAM, чтобы серваку жизнь малиной не казалась.
5) Сравниваем с тем что было.
VmSize 47036
VmRss 2692Все.Это 2692 на моей x64 системе.Стабильно как скала.Хоть еще миллионы запросов делайте - не растет.Т.е. демон вышел на устоявшийся режим и никакого роста потребления - нету.После еще 3 миллионов запросов.Впрочем, я и еще 6 миллионов запросов только что для надежности прогнал.Так что сервак отбарабанил уже 9 миллионов запросов.Ничего не поменялось.А вы про какие-то 50 000 в день.Сами посчитайте за сколько у вас 9 000 000 запросов намотается :-).
P.S. допускаю что течет в каком-то модуле.Это возможно.Путем несложных игр с http_load не вопрос выловить засранца 8)
>P.S. допускаю что течет в каком-то модуле.Это возможно.Путем несложных игр с http_load
>не вопрос выловить засранца 8)Еще замечено что lighttpd выделяет пиковое значение памяти исходя из числа конекций и размера файлов.Для более жирного 9Мб файла, 500 конектов в параллель VmSize получился около 48 000 и VmRss около 4000, это значение потом не спадает.Но и не растет даже после миллионов аналогичных запросов.
Сейчас глянул сколько у меня занимает nginx - 1352+2372kb, те ~3.5Mb. "Тремя разами" даже не пахнет.
>Сейчас глянул сколько у меня занимает nginx - 1352+2372kb, те ~3.5Mb. "Тремя
>разами" даже не пахнет.у меня не самый лёгкий lighttpd (mod_expire, mod_scgi, mod_access, mod_status, mod_rewrite, mod_accesslog) -- RSS=1080
что и требовалось доказать
>>в памяти он занимает раза в три меньше места (один процесс)
>тут долго ржал.Смешно дураку что рот на боку.Я вот его в WL500GP втулил и эта девайсина с пару пачек сигарет теперь еще и довольно нормальный веб сервак с PHP (fastcgi) на борту.При том что у девайса всего 32 мега RAM на борту это совсем не лишнее качество.Также данный подход позволяет купить простой и хилый VDS баксов за 5, ресурсов которого за глаза хватит для обслуживания сайта Васи Пупкина с таким сервером.Жрач памяти втрое больше потенциально может заставить купить более дорогой VDS с большим объемом RAM.А это прямой влет на бабки...
> nginx -- лучшее решение для вас, но только если вы -- Сысоев :)Это нормально, дорогой.
Электросварщики не держат дома запаса парусов для доски и наоборот.
Не заморачивайся.
Не видал в лайти аналога if в rewrite-модуле nginx. Конечно, if там ужасен, но лучше такой, чем никакого вообще.
>Не видал в лайти аналога if в rewrite-модуле nginx. Конечно, if там
>ужасен, но лучше такой, чем никакого вообще.if'ов там нет :( но их роль могут частично выполнять регэкспы. можно писать
какие-нибудь такие вещи
$HTTP["host"] =~ "^.*\.one.ru$" {
url.rewrite-once = ( "^/$" => "/index-1.html" )
}
переменных типа host довольно много, то есть можно проверять разные условия.
этих возможностей мне вполне хватает, хотя, конечно, в плане реврайтов nginx посильнее будет.
чем оно специализировано? сервер как раз универсальный, просто если тебе не нравятся модули которые пользует рамблер - наделай свои
а что за лицензия у 0w httpd?
да, нжникс не канает. Вернее канает только как фронтенд к Сысоеву ,-)а лайти вполне приличная замена индейцу там где не нужны извращения.
как только к лайти прикрутят авторизацию по ntlm - прибью последних индейцев на//!
странно, у меня несколько пректов уже 3 года на нгинксе, и год вообще без апача, и все работает великолепно...
у меня несколько проектов нагруженных статику выдают нгинксом, как фронтенд к апачу, летает всё (раза в 2-3 быстрее стало отдавать графику)
>у меня несколько проектов нагруженных статику выдают нгинксом, как фронтенд к апачу,Гоняю лайта как сервак в lan файлопомойке.Пашет как из пушки - загрузка проца и RAM никакая: на современной машине хрен отличишь от фонового ничегонеделания, только хардами хрустит :).Хотя судя по всему nginx тоже ничего для многих задач.Лайт понравился простой и понятной документацией, внятным форматом конфига и т.п.. но при том есть модули на все что мне нужно.
>летает всё (раза в 2-3 быстрее стало отдавать графику)
Логично блин - оно не форкает процессы\треды на каждого юзера.
помнится мне, неделю назад, когда bash.org.ru ддосили, его вначале перевели на 0W. на следующий день там уже nginx красовался... не знаю, чем руководствовались одмины баша, но наверно ж были причины отказа от 0W...
0w на linux не умеет epoll
>0w на linux не умеет epollНу и фиг бы с ним.А он чем-то принципиально лучше лайта или нжинкса?