<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Блог вебмастера &#187; nginx</title>
	<atom:link href="http://www.net-next.ru/tag/nginx/feed" rel="self" type="application/rss+xml" />
	<link>http://www.net-next.ru</link>
	<description>Новости интернета, а также ИТ индустрии и сферы высоких технологий.</description>
	<lastBuildDate>Mon, 06 Feb 2012 22:05:58 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Высокая производительность / Подводные камни при использовании кэширования в nginx</title>
		<link>http://www.net-next.ru/habranews/29847.html</link>
		<comments>http://www.net-next.ru/habranews/29847.html#comments</comments>
		<pubDate>Fri, 16 Oct 2009 01:50:39 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Новости с Хабра]]></category>
		<category><![CDATA[nginx]]></category>

		<guid isPermaLink="false">http://press/?p=29847</guid>
		<description><![CDATA[В web-сервер и reverse-proxy nginx встроены очень мощные возможности по кэшированию HTTP-ответов. Однако в ряде случаев документации и примеров не хватает, в результате не все получается так легко и просто, как хотелось бы. Этой статьей я попробую немного улучшить ситуацию. 

В этой статье: а) подводные камни при полностраничном кэшировании; б) кэширование с ротацией; в) создание [...]]]></description>
			<content:encoded><![CDATA[<p>В web-сервер и reverse-proxy nginx встроены очень мощные возможности по кэшированию HTTP-ответов. Однако в ряде случаев документации и примеров не хватает, в результате не все получается так легко и просто, как хотелось бы. Этой статьей я попробую немного улучшить ситуацию. <br/><br />
<br/><br />
<b>В этой статье: а) подводные камни при полностраничном кэшировании; б) кэширование с ротацией; в) создание динамического «окна» в закэшированной странице.</b><br/><br />
<br/><br />
<i>Я буду предполагать, что вы используете связку nginx+fastcgi_php. Если вы применяете nginx+apache+mod_php, просто замените имена директив с fastcgi_cache* на proxy_cache*</i><br/><br />
<br/><br />
Если выбирать, кэшировать ли страницу на стороне PHP или на стороне nginx, я выбираю nginx. Во-первых, это позволяет отдавать 5-10 тыс. запросов в секунду без каких-либо сложностей и без умных разговоров о «высокой нагрузке». Во-вторых, nginx самостоятельно следит за размером кэша и чистит его как при устаревании, так и при вытеснении нечасто используемых данных.<br/><br />
<br/></p>
<h4>Кэширование всей страницы целиком</h4>
<p><br/><br />
 Если на вашем сайте главная страница хоть и генерируется динамически, но меняется достаточно редко, можно сильно снизить нагрузку на сервер, закэшировав ее в nginx. При высокой посещаемости даже кэширование на короткий срок (5 минут и меньше) уже дает огромный прирост в производительности, ведь кэш работает очень быстро. Даже закэшировав страницу всего на 30 секунд, вы все равно добьетесь значительной разгрузки сервера, сохранив при этом динамичность обновления данных (во многих случаях обновления раз в 30 секунд вполне достаточно).
<div class="habracut"> <a class="habracut" href="http://habrahabr.ru/blogs/hi/72539/#habracut">Читать дальше &rarr;</a> </div>
]]></content:encoded>
			<wfw:commentRss>http://www.net-next.ru/habranews/29847.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Уязвимость в реализации WebDAV в nginx (4)</title>
		<link>http://www.net-next.ru/inetnews/28846.html</link>
		<comments>http://www.net-next.ru/inetnews/28846.html#comments</comments>
		<pubDate>Mon, 05 Oct 2009 18:37:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Новости интернета]]></category>
		<category><![CDATA[nginx]]></category>

		<guid isPermaLink="false">http://press/?p=28846</guid>
		<description><![CDATA[Удаленный пользователь может обойти некоторые ограничения безопасности. &#8230;
]]></description>
			<content:encoded><![CDATA[<p>Удаленный пользователь может обойти некоторые ограничения безопасности. &#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.net-next.ru/inetnews/28846.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nginx / Кеширование FastCGI-запросов в nginx</title>
		<link>http://www.net-next.ru/habranews/28889.html</link>
		<comments>http://www.net-next.ru/habranews/28889.html#comments</comments>
		<pubDate>Mon, 05 Oct 2009 10:43:34 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Новости с Хабра]]></category>
		<category><![CDATA[nginx]]></category>

		<guid isPermaLink="false">http://press/?p=28889</guid>
		<description><![CDATA[Доброе утро, Хабр!

В данной статье я приведу пример конфигурации nginx для кеширования FastCGI-запросов. При желании его можно использовать его для защиты от хабраэффекта, частично от DDoS&#8217;а и, как вариант, для облегчения жизни сервера с высокой нагрузкой.
 Читать дальше &#8594; 
]]></description>
			<content:encoded><![CDATA[<p>Доброе утро, Хабр!<br/><br />
<br/><br />
В данной статье я приведу пример конфигурации nginx для кеширования FastCGI-запросов. При желании его можно использовать его для защиты от хабраэффекта, частично от DDoS&#8217;а и, как вариант, для облегчения жизни сервера с высокой нагрузкой.<br/></p>
<div class="habracut"> <a class="habracut" href="http://habrahabr.ru/blogs/nginx/71501/#habracut">Читать дальше &rarr;</a> </div>
]]></content:encoded>
			<wfw:commentRss>http://www.net-next.ru/habranews/28889.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nginx / Игры в OLTP</title>
		<link>http://www.net-next.ru/habranews/27300.html</link>
		<comments>http://www.net-next.ru/habranews/27300.html#comments</comments>
		<pubDate>Thu, 17 Sep 2009 22:54:55 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Новости с Хабра]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[игры]]></category>

		<guid isPermaLink="false">http://press/?p=27300</guid>
		<description><![CDATA[В последнее время на Хабре стала популярной тема реализации высокопроизводительных приложений. Решили тоже немножко поэкспериментировать в этом направлении и поделиться текущими результатами наших изысканий.

Подопытный «Hello, world!» представляет собой простейшую OLTP систему:



Требования к производительности и отказоустойчивости являются ключевыми для подобных систем. Поэтому поиск решения поставленной задачи осуществлялся в направлении: C, C++, fastcgi, nginx, lighttpd, oracle. В [...]]]></description>
			<content:encoded><![CDATA[<p>В последнее время на Хабре стала популярной тема реализации высокопроизводительных приложений. Решили тоже немножко поэкспериментировать в этом направлении и поделиться текущими результатами наших изысканий.<br/><br />
<br/><br />
Подопытный <em>«Hello, world!»</em> представляет собой простейшую OLTP систему:<br/><br />
<br/><br />
<img align="center" src="http://img201.imageshack.us/img201/909/mainb.jpg"/><br/><br />
<br/><br />
Требования к производительности и отказоустойчивости являются ключевыми для подобных систем. Поэтому поиск решения поставленной задачи осуществлялся в направлении: C, C++, fastcgi, nginx, lighttpd, oracle. В первую очередь нам было любопытно попробовать различные варианты построения OLTP на данных технологиях, а так же измерить производительность и пиковые нагрузки.<br/><br />
<br/></p>
<div class="habracut"> <a class="habracut" href="http://habrahabr.ru/blogs/nginx/69974/#habracut">Подробности под катом&#8230;</a> </div>
]]></content:encoded>
			<wfw:commentRss>http://www.net-next.ru/habranews/27300.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Критическая уязвимость в nginx</title>
		<link>http://www.net-next.ru/inetnews/27006.html</link>
		<comments>http://www.net-next.ru/inetnews/27006.html#comments</comments>
		<pubDate>Tue, 15 Sep 2009 11:05:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Новости интернета]]></category>
		<category><![CDATA[nginx]]></category>

		<guid isPermaLink="false">http://press/?p=27006</guid>
		<description><![CDATA[В популярном веб-сервере nginx, используемом во многих проектах в качестве высокопроизводительного фронт-энда, обнаружено переполнение буфера, способное привести к DoS либо выполнению произвольного кода (демонстрация последнего пока отсутстует). Патчи доступны, срочное обновление крайне рекомендуется.
]]></description>
			<content:encoded><![CDATA[<p>В популярном веб-сервере nginx, используемом во многих проектах в качестве высокопроизводительного фронт-энда, обнаружено переполнение буфера, способное привести к DoS либо выполнению произвольного кода (демонстрация последнего пока отсутстует). Патчи доступны, срочное обновление крайне рекомендуется.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.net-next.ru/inetnews/27006.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Информационная безопасность / [Ссылка] Критическая уязвимость в http-сервере Nginx</title>
		<link>http://www.net-next.ru/habranews/27094.html</link>
		<comments>http://www.net-next.ru/habranews/27094.html#comments</comments>
		<pubDate>Tue, 15 Sep 2009 09:08:09 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Новости с Хабра]]></category>
		<category><![CDATA[nginx]]></category>

		<guid isPermaLink="false">http://press/?p=27094</guid>
		<description><![CDATA[В web-сервере Nginx обнаружена удаленная критическая уязвимость (CERT VU#180065, CVE-2009-2629): переполнение буфера, которое может привести к выполнению произвольного кода с правами рабочих процессов или к осуществлению атаки &#34;отказ в обслуживании&#34; через передачу специальным образом сформированного URL.
Уязвимые версии: 0.1.0-0.8.14. С исправлением выпущены версии nginx-0.8.15, nginx-0.7.62, nginx-0.6.39 и nginx-0.5.38. Доступен патч и обновления для Debian, Fedora, FreeBSD.
]]></description>
			<content:encoded><![CDATA[<p>В web-сервере Nginx обнаружена удаленная критическая уязвимость (CERT VU#180065, CVE-2009-2629): переполнение буфера, которое может привести к выполнению произвольного кода с правами рабочих процессов или к осуществлению атаки &quot;отказ в обслуживании&quot; через передачу специальным образом сформированного URL.<br/><br />
Уязвимые версии: 0.1.0-0.8.14. С исправлением выпущены версии nginx-0.8.15, nginx-0.7.62, nginx-0.6.39 и nginx-0.5.38. Доступен патч и обновления для Debian, Fedora, FreeBSD.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.net-next.ru/habranews/27094.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nginx / Nginx: точно вовремя</title>
		<link>http://www.net-next.ru/habranews/26840.html</link>
		<comments>http://www.net-next.ru/habranews/26840.html#comments</comments>
		<pubDate>Sun, 13 Sep 2009 22:23:09 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Новости с Хабра]]></category>
		<category><![CDATA[nginx]]></category>

		<guid isPermaLink="false">http://press/?p=26840</guid>
		<description><![CDATA[Хочу написать о небольшом трюке с SSI, который недавно мне пригодился.

Предположим, вам нужно выкатить немного изменённый вариант некоей странички ровно в полночь, или в любое другое очень неудобное время, когда все нормальные люди давно спят. Также, предположим, вам не хочется возиться с кроном, и вообще, у вас всё тысячу раз протестировано, так что ничего случиться [...]]]></description>
			<content:encoded><![CDATA[<p>Хочу написать о небольшом трюке с SSI, который недавно мне пригодился.<br/><br />
<br/><br />
Предположим, вам нужно выкатить немного изменённый вариант некоей странички ровно в полночь, или в любое другое очень неудобное время, когда все нормальные люди давно спят. Также, предположим, вам не хочется возиться с кроном, и вообще, у вас всё тысячу раз протестировано, так что ничего случиться не может. <img src='http://www.net-next.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> <br/><br />
<br/><br />
Для этой цели, мы можем воспользоваться nginx-овым SSI. Никаких изменений в конфиг nginx вносить не придётся, а сама страничка может выглядеть примерно так:<br/><br />
<br/><br />
<code>&lt;!--# config timefmt=&quot;%d%m%Y&quot; --&gt;<br/><br />
&lt;!-- мы только что установили, что переменная $date_local дожна иметь вид ддммгггг--&gt;<br/><br />
&lt;!--# if expr=&quot;$date_local = 01012010&quot; --&gt;<br/><br />
&lt;!--# include virtual=&quot;/path/to/new_year_congratulations/&quot; stub=&quot;Oops!&quot; --&gt;<br/><br />
&lt;!--# else --&gt;<br/><br />
&lt;!--# include virtual=&quot;/path/to/usual/version/of/block/&quot; stub=&quot;Oops2!&quot; --&gt;<br/><br />
&lt;!--# endif--&gt;<br/><br />
&lt;!-- если переменные $date_local или $date_gmt используются где-то ещё, неплохо бы вернуть обратно формат по умолчанию, если он нужен --&gt;<br/><br />
</code><br/><br />
<br/><br />
И теперь, ровно в полночь, 1 января 2010 года, ваши пользователи увидят поздравление с новым годом на месте какого-то обычного блока. Причём, вы в это время можете спокойно спать (ну или, пьянствовать с друзьями). <img src='http://www.net-next.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Более того, ровно в полночь, второго января, поздравление исчезнет, без малейшего вашего участия.<br/><br />
<br/><br />
Этот метод, конечно же, можно расширить и улучшить, достигая самых необычных результатов. Например, можно, в автоматическом режиме, каждую пятницу, поздравлять пользователей с окончанием рабочей недели.<br/><br />
<br/><br />
Естественно, у него есть и недостатки:<br/><br />
 — ваш if будет исполняться при каждой отдаче страницы — это может быть критично на серверах с очень медленным процессором, или на VPS;<br/><br />
 — некоторые промежутки времени таким образом определить всё-же не получится, или это потребует не одного оператора «if»;<br/><br />
 — что-то ещё… <img src='http://www.net-next.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> <br/><br />
<br/><br />
Но, в целом — неплохое, удобное, а главное, быстрое решение.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.net-next.ru/habranews/26840.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nginx / Файловый AIO в nginx</title>
		<link>http://www.net-next.ru/habranews/26425.html</link>
		<comments>http://www.net-next.ru/habranews/26425.html#comments</comments>
		<pubDate>Tue, 08 Sep 2009 17:49:08 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Новости с Хабра]]></category>
		<category><![CDATA[nginx]]></category>

		<guid isPermaLink="false">http://press/?p=26425</guid>
		<description><![CDATA[В последних версиях nginx (начиная с 0.8.11) появилась поддержка асинхронного файлового ввода-вывода. Потенциально, эта фича способна устранить одно из узких мест веб-сервера — полную блокировку процесса при файловом IO.

Проблема состоит в том, что ни один из запросов, которые процесс-воркер уже обслуживает, не будет обрабатываться далее, пока не будет окончена операция с файлом. В случаях с [...]]]></description>
			<content:encoded><![CDATA[<p>В последних версиях nginx (начиная с 0.8.11) появилась поддержка асинхронного файлового ввода-вывода. Потенциально, эта фича способна устранить одно из узких мест веб-сервера — полную блокировку процесса при файловом IO.<br/><br />
<br/><br />
Проблема состоит в том, что ни один из запросов, которые процесс-воркер уже обслуживает, не будет обрабатываться далее, пока не будет окончена операция с файлом. В случаях с большим количеством больших файлов, это могло приводить к заметному замедлению работы воркера.<br/><br />
<br/><br />
Раньше, эта проблема решалась увеличением количества процессов-воркеров. Теперь есть альтернативное решение. <img src='http://www.net-next.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Однако, перед тем, как включать файловый AIO, стоит учесть ряд нюансов.<br/><br />
<br/><br />
Во-первых, хочу обратить ваше внимание, что не стоит ожидать от новых версий значительного увеличения производительности. Это возможно только при очень специфической нагрузке — когда один и тот же сервер одновременно отдаёт несколько небольших статических файлов, и очень большое количество больших файлов.<br/><br />
<br/><br />
Во-вторых, файловый AIO работает только на FreeBSD 4.3 и выше, либо в Linux, с версии ядра 2.6.22 и выше.<br/><br />
<br/><br />
В-третьих, AIO во FreeBSD имеет смысл включать только в версиях FreeBSD-6.4 STABLE, FreeBSD 7, или новее. В более ранних версиях, при включении AIO, сетевая подсистема начинает использовать Giant Lock, что означает невозможность одновременного выполнения какого-то другого системного вызова. Другими словами, почти никаких выгод от асинхронности мы не получим.<br/><br />
<br/><br />
Ну и наконец, при использовании AIO под Linux надо также включать directio. Также, если я всё понял правильно, в линукс пока невозможно использовать AIO для подгрузки данных для sendfile, поскольку включение directio отключит использование sendfile автоматически.<br/><br />
<br/><br />
Если вы по-прежнему считаете, что оно вам нужно, AIO включается очень просто. Для Linux, фрагмент конфига будет выглядеть примерно так:<br/><br />
<br/><br />
<code> aio on; # включаем AIO<br/><br />
 directio 512; # включаем O_DIRECT для файлов, размером 512 байт или больше<br/><br />
 output_buffers 128 512k; # зная размер и примерное количество одновременно отдаваемых файлов, можно подобрать более подходящие значения<br/><br />
</code><br/><br />
<br/><br />
Ссылки:<br/><br />
<a href="http://sysoev.ru/nginx/docs/http/ngx_http_core_module.html#aio">Описание AIO в документации на Nginx</a><br/><br />
<a href="http://sysoev.ru/nginx/changes.html">Changelog</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.net-next.ru/habranews/26425.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Блог компании Highload Lab. / Учимся отражать микроDDoS на NGiNX</title>
		<link>http://www.net-next.ru/habranews/25834.html</link>
		<comments>http://www.net-next.ru/habranews/25834.html#comments</comments>
		<pubDate>Wed, 02 Sep 2009 14:51:14 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Новости с Хабра]]></category>
		<category><![CDATA[nginx]]></category>

		<guid isPermaLink="false">http://press/?p=25834</guid>
		<description><![CDATA[Коротко о нас.
Совместно с Центром телекоммуникаций и информационных технологий МГУ им. М.В. Ломоносова, мы занимаемся исследованиями DDoS. 
Основная цель: разработать и донести до сообщества эффективные, доступные техники противодействия распределенным атакам на отказ в обслуживании.
В рамках исследовательской программы мы бесплатно предоставляем защиту. Все что нужно — передать трафик на наше оборудование любым удобным способом (изменить А [...]]]></description>
			<content:encoded><![CDATA[<p>Коротко о нас.<br/><br />
Совместно с Центром телекоммуникаций и информационных технологий МГУ им. М.В. Ломоносова, мы занимаемся исследованиями DDoS. <br/><br />
Основная цель: разработать и донести до сообщества эффективные, доступные техники противодействия распределенным атакам на отказ в обслуживании.<br/><br />
В рамках исследовательской программы мы <i>бесплатно</i> предоставляем защиту. Все что нужно — передать трафик на наше оборудование любым удобным способом (изменить А запись DNS, GRE/IPIP tunnel).<br/><br />
<br/><br />
В блоге проекта <a href="http://hll.msu.ru">hll.msu.ru</a> мы будем регулярно публиковать материалы, полученные в ходе исследований. Самые интересные случаи, методики, распространенные ошибки, — публиковать на Хабре.<br/><br />
<br/></p>
<div class="habracut"> <a class="habracut" href="http://habrahabr.ru/company/highloadlab/blog/68557/#habracut">Начнем с простого и весьма распространенного случая&#8230;</a> </div>
]]></content:encoded>
			<wfw:commentRss>http://www.net-next.ru/habranews/25834.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nginx / Редкие фичи nginx: mod_zip</title>
		<link>http://www.net-next.ru/habranews/25288.html</link>
		<comments>http://www.net-next.ru/habranews/25288.html#comments</comments>
		<pubDate>Thu, 27 Aug 2009 22:11:15 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Новости с Хабра]]></category>
		<category><![CDATA[nginx]]></category>

		<guid isPermaLink="false">http://press/?p=25288</guid>
		<description><![CDATA[Раз уж зашел разговор о редких и полезных модулях для nginx — я расскажу вам об онлайн упаковщике ZIP файлов для nginx. Он позволяет на лету формировать ZIP архив из заданного списка файлов с возможностью многопоточной скачки и докачки файла, но без сжатия.
 Читать дальше &#8594; 
]]></description>
			<content:encoded><![CDATA[<p>Раз уж <a href="http://habrahabr.ru/blogs/nginx/68148/">зашел разговор</a> о редких и полезных модулях для nginx — я расскажу вам об онлайн упаковщике ZIP файлов для nginx. Он позволяет на лету формировать ZIP архив из заданного списка файлов с возможностью многопоточной скачки и докачки файла, но без сжатия.<br/></p>
<div class="habracut"> <a class="habracut" href="http://habrahabr.ru/blogs/nginx/68160/#habracut">Читать дальше &rarr;</a> </div>
]]></content:encoded>
			<wfw:commentRss>http://www.net-next.ru/habranews/25288.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

