view xml/ru/docs/windows.xml @ 1878:127ae107e5a9

Removed clause about shared memory and Windows versions with ASLR. Starting with nginx 1.9.0 shared memory can be used on Windows versions with address space layout randomization.
author Maxim Dounin <mdounin@mdounin.ru>
date Mon, 26 Dec 2016 19:38:06 +0300
parents db848aaa123a
children 4795c2ae5066
line wrap: on
line source

<!--
  Copyright (C) Igor Sysoev
  Copyright (C) Nginx, Inc.
  -->

<!DOCTYPE article SYSTEM "../../../dtd/article.dtd">

<article name="nginx под Windows"
         link="/ru/docs/windows.html"
         lang="ru"
         rev="4">

<section>

<para>
Версия nginx под Windows использует “родной” Win32 API (не эмуляцию Cygwin).
В настоящий момент в качестве метода обработки соединений используется
только <c-func>select</c-func>,
поэтому не стоит ожидать высокой производительности и масштабируемости.
В силу этого и ряда других известных проблем версия nginx под Windows
рассматривается пока как <i>бета</i>-версия.
На данный момент в ней доступна практически вся функциональность, что и
в версии nginx под UNIX, за исключением
XSLT-фильтра, фильтра изображений, модуля GeoIP и встроенного языка Perl.
</para>

<para>
Чтобы установить nginx/Windows, <link doc="../download.xml">скачайте</link>
дистрибутив последней основной версии (<mainline_version/>),
поскольку основная ветвь nginx содержит все известные исправления.
Затем распакуйте дистрибутив, перейдите в каталог
nginx-<mainline_version/>
и запустите <command>nginx</command>.
Вот пример для корневого каталога на диске C:

<programlisting>
cd c:\
unzip nginx-<mainline_version/>.zip
cd nginx-<mainline_version/>
start nginx
</programlisting>

Чтобы увидеть процессы nginx, запустите утилиту командной строки
<command>tasklist</command>:

<programlisting>
C:\nginx-<mainline_version/>&gt;tasklist /fi "imagename eq nginx.exe"

Image Name           PID Session Name     Session#    Mem Usage
=============== ======== ============== ========== ============
nginx.exe            652 Console                 0      2 780 K
nginx.exe           1332 Console                 0      3 112 K
</programlisting>

Один из процессов главный, другой&mdash;рабочий.
Если nginx не запускается, нужно искать причину в
в файле лога ошибок <path>logs\error.log</path>.
Если же лог-файл не создался, то причину этого следует искать
в Windows Event Log.
Если вместо ожидаемой страницы выводится страница с ошибкой, нужно также
искать причины ошибки в файле <path>logs\error.log</path>.
</para>

<para>
nginx/Windows использует каталог, в котором он был запущен, в качестве
префикса для относительных путей в конфигурации.
В вышеприведённом примере префиксом является
<path>C:\nginx-<mainline_version/>\</path>.
Пути в конфигурационном файле должны задаваться в UNIX-стиле с использованием
прямых слэшей:

<programlisting>
access_log   logs/site.log;
root         C:/web/html;
</programlisting>
</para>

<para>
nginx/Windows работает как стандартное консольное приложение (не сервис)
и управляется при помощи следующих команд:

<table note="yes">

<tr>
<td width="20%">nginx -s stop</td>
<td>быстрое завершение</td>
</tr>

<tr>
<td>nginx -s quit</td>
<td>плавное завершение</td>
</tr>

<tr>
<td>nginx -s reload</td>
<td>
изменение конфигурации,
запуск новых рабочих процессов с новой конфигурацией,
плавное завершение старых рабочих процессов
</td>
</tr>

<tr>
<td>nginx -s reopen</td>
<td>переоткрытие лог-файлов</td>
</tr>

</table>
</para>

</section>

<section id="known_issues"
        name="Известные проблемы">

<list type="bullet">

<listitem>
Хоть и возможен запуск нескольких рабочих процессов, только один из них
реально работает.
</listitem>

<listitem>
Рабочий процесс может обслуживать не более 1024 одновременных соединений.
</listitem>

<listitem>
Проксирование по UDP не поддерживается.
</listitem>

</list>

</section>

<section id="possible_future_enhancements"
        name="Возможные усовершенствования в будущем">

<list type="bullet">

<listitem>
Запуск в виде сервиса.
</listitem>

<listitem>
Использование портов завершения ввода-вывода (I/O completion ports)
в качестве метода обработки соединений.
</listitem>

<listitem>
Использование нескольких рабочих нитей внутри одного рабочего процесса.
</listitem>

</list>

</section>

</article>