<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/css" href="http://wiki2.linuxformat.ru/skins/common/feed.css?97"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://wiki2.linuxformat.ru/index.php?action=history&amp;feed=atom&amp;title=LXF94%3Anginx</id>
		<title>LXF94:nginx - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://wiki2.linuxformat.ru/index.php?action=history&amp;feed=atom&amp;title=LXF94%3Anginx"/>
		<link rel="alternate" type="text/html" href="http://wiki2.linuxformat.ru/index.php?title=LXF94:nginx&amp;action=history"/>
		<updated>2026-05-13T23:39:10Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.11.1</generator>

	<entry>
		<id>http://wiki2.linuxformat.ru/index.php?title=LXF94:nginx&amp;diff=1054&amp;oldid=prev</id>
		<title>Lodger: /* Nginx: */</title>
		<link rel="alternate" type="text/html" href="http://wiki2.linuxformat.ru/index.php?title=LXF94:nginx&amp;diff=1054&amp;oldid=prev"/>
				<updated>2008-03-11T12:42:51Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Nginx:&lt;/span&gt;&lt;/p&gt;

			&lt;table style=&quot;background-color: white; color:black;&quot;&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;tr&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Версия 12:42, 11 марта 2008&lt;/td&gt;
			&lt;/tr&gt;
		&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;== Nginx: ==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;== Nginx: &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;мечта сисадмина &lt;/ins&gt;==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;''ЧАСТЬ 1 Интернет немыслим без web-сервера. 60-70 процентов узлов Сети обслуживаются Apache, а как живут оставшиеся 20-30 процентов?&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;''ЧАСТЬ 1 Интернет немыслим без web-сервера. 60-70 процентов узлов Сети обслуживаются Apache, а как живут оставшиеся 20-30 процентов?&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;'''Валерия Комиссарова''' знает ответ.''&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;'''Валерия Комиссарова''' знает ответ.''&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Lodger</name></author>	</entry>

	<entry>
		<id>http://wiki2.linuxformat.ru/index.php?title=LXF94:nginx&amp;diff=1052&amp;oldid=prev</id>
		<title>Lodger: Новая: == Nginx: == ''ЧАСТЬ 1 Интернет немыслим без web-сервера. 60-70 процентов узлов Сети обслуживаются Apache, а как жив...</title>
		<link rel="alternate" type="text/html" href="http://wiki2.linuxformat.ru/index.php?title=LXF94:nginx&amp;diff=1052&amp;oldid=prev"/>
				<updated>2008-03-11T12:36:07Z</updated>
		
		<summary type="html">&lt;p&gt;Новая: == Nginx: == ''ЧАСТЬ 1 Интернет немыслим без web-сервера. 60-70 процентов узлов Сети обслуживаются Apache, а как жив...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая статья&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Nginx: ==&lt;br /&gt;
''ЧАСТЬ 1 Интернет немыслим без web-сервера. 60-70 процентов узлов Сети обслуживаются Apache, а как живут оставшиеся 20-30 процентов?&lt;br /&gt;
'''Валерия Комиссарова''' знает ответ.''&lt;br /&gt;
&lt;br /&gt;
Web-сервера бывают разные – получше, похуже или вовсе предназначенные для решения нескольких типов задач. Выбрать web-сервер, полностью соответствующий именно вашим нуждам, просто необходимо: от этого во многом зависит, насколько хорошо – эффективно и удобно для пользователей – будет функционировать ваш web-ресурс. Соответственно, правильный выбор и поддержка web-сервера – известная «головная боль» почти всех администраторов в мире. В заголовок данной статьи вынесено название продукта, который мы будем рассматривать; наверное, однозначно назвать его «мечтой администратора» – некоторое преувеличение. Но, без сомнения, Nginx – неплохой выбор для попытки приблизиться к главному желанию сисадмина почти любого ресурса: стабильно и эффективно работающему web-серверу.&lt;br /&gt;
&lt;br /&gt;
=== Кое-что о Nginx ===&lt;br /&gt;
&lt;br /&gt;
Прежде чем говорить об этой разработке, давайте разберемся, что же такое Nginx и какова его история.&lt;br /&gt;
&lt;br /&gt;
Nginx – HTTP-сервер (и одновременно – почтовый прокси-сервер, но об этом позже). Сразу же уясните для себя важную деталь: Nginx не является стандартным web-сервером в том смысле, в каком большинство читателей могут его воспринять, т.е. Nginx не может служить&lt;br /&gt;
функциональной заменой, например, Apache или IIS. В сущности, Apache и Nginx находятся «по разные стороны баррикад». Здесь уместно вспомнить модель «front-end/back-end»: соответственно, Apache будет относиться к back-end, а Nginx – к front-end. Данные продукты&lt;br /&gt;
предназначены для выполнения задач различных типов – это очень важно.&lt;br /&gt;
&lt;br /&gt;
Почему мы говорим исключительно об Apache? Да потому, что Nginx работает только под Unix/Linux системами. Теперь об истории проекта. Nginx начал разрабатываться Игорем Сысоевым (одним из администраторов Rambler’а) весной 2002 года. Проект стал использоваться на различных серверах (в частности, в том же Rambler’е) задолго до официального релиза, состоявшегося 4 октября 2004 года, и до своего обнародования Nginx уже прошел серьезное тестирование. По данным, собранным и организованным Алексеем Тутубалиным, в марте 2006 года щелчок по «Черному квадрату» (http://www.rukv.ru) приводил к отклику Nginx в 9,8%, а в марте 2007 – уже в 22,7% случаев (речь идет о виртуальных серверах). Помимо Rambler’а, стоит упомянуть о Mamba и Peterhost, на чьих серверах также функционирует Nginx.&lt;br /&gt;
&lt;br /&gt;
=== Когда пригодится Nginx? ===&lt;br /&gt;
&lt;br /&gt;
В чем преимущества использования модели «front-end/back-end»? Основное – значительно б льшая эффективность работы, чем в других – стандартных и привычных – схемах использования того же Apache; но отнюдь не во всех.&lt;br /&gt;
&lt;br /&gt;
Прежде всего необходимо учесть, что использование обсуждаемой модели будет уместно только применительно к серверам с высокой нагрузкой, оправдывающей использование подобного рода средств. Под «высокой нагрузкой» следует понимать количество http-запросов,&lt;br /&gt;
превышающее 10–12 в секунду. Соответственно, если такой нагрузки на сервер нет, то лучше не строить работу сервера по принципу «frontend/back-end»; это решение может привести и к некоторому замедлению работы (хотя и довольно незначительному): ведь Nginx – дополнительный «пропускной пункт» на пути к back-end’у и к увеличению потребления памяти и т.д. Не стоит использовать Nginx там, где в нем нет нужды, чтобы не винить в неудобствах и неувязках продукт и его разработчика.&lt;br /&gt;
&lt;br /&gt;
=== Что умеет Nginx? ===&lt;br /&gt;
&lt;br /&gt;
Итак, какие возможности предоставляет данный продукт? Nginx – это и HTTP-сервер, и почтовый прокси-сервер. Поэтому рассматриваемые&lt;br /&gt;
возможности оправданно разбить на категории согласно двум функциональным направлениям Nginx. Начнем с HTTP-сервера, в числе функций которого:&lt;br /&gt;
&lt;br /&gt;
*'''Обслуживание статических запросов.''' Конкретнее, это «передача» пользователю статических html-страниц, графических изображений и&lt;br /&gt;
прочего контента. Второе – обслуживание запросов на индексные файлы. Данная функциональность реализуется модулем &lt;br /&gt;
ngx_http_index_module: он обслуживает запросы, оканчивающихся слэшем (“/”).&lt;br /&gt;
&lt;br /&gt;
*'''Автоматическое создание списка файлов;''' это задача модуля ngx_http_autoindex_module, который выполняет автоматическое создание&lt;br /&gt;
листинга каталога. Запрос попадает к модулю в том случае, если у компонента ngx_http_index_module возникли проблемы с поиском&lt;br /&gt;
индексного файла.&lt;br /&gt;
&lt;br /&gt;
*'''Ускоренное проксирование без кэширования,''' выполняемое модулем ngx_http_proxy_module. Он обладает большим количеством директив, с помощью которых можно настроить параметры процесса. В следующий раз мы рассмотрим этот вопрос более подробно.&lt;br /&gt;
&lt;br /&gt;
Особого внимания заслуживают функции/модули, касающиеся обеспечения отказоустойчивости виртуального сервера и распределения нагрузки. Данная функциональность связана с модулем ngx_http_upstream.&lt;br /&gt;
&lt;br /&gt;
Предусмотрена еще и поддержка SSL.&lt;br /&gt;
&lt;br /&gt;
Что же касается «почтовой» функциональности, то здесь имеются возможности для нормальной работы с IMAP, POP3, SMTP, а также SSL. Среди поддерживаемых методов аутентификации: LOGIN для IMAP, USER/PASS, APOP, AUTH LOGIN PLAIN CRAM-MD5 у POP3, и AUTH LOGIN PLAIN CRAM-MD5 у SMTP.&lt;br /&gt;
&lt;br /&gt;
Чего Nginx «не умеет» и вряд ли будет «уметь»? Судя по «настрою» разработчика, о .htaccess придется забыть. Не стоит надеяться и на&lt;br /&gt;
поддержку CGI.&lt;br /&gt;
&lt;br /&gt;
Что осталось добавить? Возможность обновления исполняемого файла Nginx и его настроек без остановки процесса обслуживания клиентов; высокая модульность. Среди приятных «мелочей» – быстрая ротация журналов, ведение отладочного журнала, и перенаправление ошибок (например, 404).&lt;br /&gt;
&lt;br /&gt;
=== Почему Nginx так быстро работает? ===&lt;br /&gt;
&lt;br /&gt;
А теперь давайте посмотрим, почему Nginx (как и сама модель «frontend/back-end») работает быстро и эффективно (Nginx действительно&lt;br /&gt;
быстр, это не «слухи»). Можно поставить вопрос и так: почему разделение обязанностей между Apache/Nginx обеспечивает большее быстродействие, чем в схеме работы без последнего?&lt;br /&gt;
&lt;br /&gt;
Почему – если сравнивать работу Apache без Nginx и в связке с Nginx в ситуации со статическим контентом – второй вариант быстрее&lt;br /&gt;
(иногда это заметно больше, иногда меньше, но чувствуется всегда)? Рассмотрим, что такое модель prefork(ed), используемая в Apache 1.3. Мы имеем один главный процесс, который при получении входящих запросов создает требуемые дочерние процессы с помощью fork ().&lt;br /&gt;
Такой подход традиционен, и в то же время является одним из худших по производительности/эффективности. Почему? Происходит серь-&lt;br /&gt;
езный перерасход системных ресурсов (думаю, не нужно объяснять сущность работы fork()). И бороться с тем, что множество дочерних&lt;br /&gt;
процессов (число которых, понятное дело, растет с числом запросов) стремительно поглощает системную память, негативно влияет на производительность и в разы снижает удобство работы с ресурсом, очень трудно. Что же нам предложит Nginx? FSM! Аббревиатура расшифровывается как Finite State Machine – автоматы с конечным числом состояний, иначе – КА (конечные автоматы). Несмотря на ряд ограничений, в ситуации с Nginx FSM полностью себя оправдывает. FSM – довольно сложная вычислительная модель; ей посвящен не один толстый книжный том; ну, а мы просто посмотрим, что еще используется в отношении скорости в Nginx, и к какому результату, заметно отличающемуся от prefork(ed)-модели, это все приводит.&lt;br /&gt;
&lt;br /&gt;
Nginx использует kqueue (на системах Free/Net/Open BSD и MacOS X) – механизм оповещения определенного процесса о конкретных событиях, произошедших в ядре ОС. Применение kqueue, в частности, позволяет избавиться от большого количества «лишних» вызовов некоторых функций. Также используются epoll и rtsig (в ОС Linux), sendfile (для Linux, FreeBSD, Solaris). На примере kqueue очевидно направление этих функций. Главное – результат: радикальное уменьшение количества «съедаемой» памяти, увеличение быстродействия и&lt;br /&gt;
т.д., со всеми вытекающими последствиями.&lt;br /&gt;
&lt;br /&gt;
Эффективность модели «front-end/back-end» напрямую следует из осуществления значительного снижения воздействия негативных сторон prefork(ed) Apache. Разделение труда между front-end и back-end дает радикальное уменьшение числа переключений контекста и количества потребляемой памяти.&lt;br /&gt;
&lt;br /&gt;
На самом деле возможностей у Nginx намного больше, чем здесь описано. Говорить о них можно если и не бесконечно, то достаточно долго. Но задача данной статьи – рассказать, насколько многообразен и качественен этот web-сервер; детальному рассмотрению процесса установки и настройки Nginx будет посвящена следующая статья.&lt;/div&gt;</summary>
		<author><name>Lodger</name></author>	</entry>

	</feed>