Nginx – веб-сервер и обратный прокси-сервер, который используется для размещения сайтов и веб-приложений, обработки HTTP- и HTTPS-запросов, балансировки нагрузки и кэширования данных. Благодаря высокой производительности и сравнительно небольшому потреблению системных ресурсов Nginx широко применяется для обслуживания как небольших сайтов, так и крупных веб-проектов.
Хотя Nginx чаще используется на серверах под управлением Linux, данный веб-сервер также имеет официальную версию для операционных систем Windows. Такой вариант может использоваться для тестирования, разработки или размещения несложных веб-проектов.
В статье разберём, как установить и выполнить базовую настройку Nginx на виртуальном сервере, работающем под управлением Windows Server.
Как установить Nginx на Windows Server
Nginx для Windows распространяется в виде ZIP-архива, поэтому установка выполняется путём загрузки и распаковки готового дистрибутива.
Перейдите на официальную страницу релизов Nginx и загрузите актуальную версию для Windows.

Дождитесь окончания загрузки файла и извлеките находящийся в архиве каталог на диск C:. В нашем примере это каталог nginx-1.30.4.

Затем откройте командную строку, используя сочетание клавиш Win + R, где наберите cmd и нажмите Enter.
В командной строке, во-первых, переименуйте извлечённый из архива каталог, например, в nginx:
rename C:\nginx-1.30.4 nginx
После чего перейдите в каталог C:\nginx:
cd C:\nginx
Выполните команду для запуска Nginx:
start nginx
Затем здесь на рабочем столе сервера откройте браузер и проверьте работоспособность веб-сервера, перейдя по ссылке http://localhost.

Также проверить наличие запущенного процесса можно при помощи команды в командной строке:
tasklist | findstr nginx
Вывод команды должен содержать список процессов, в котором будут отображаться процессы nginx.exe.

Для корректного завершения работы Nginx с обработкой активных подключений можно использовать команду:
nginx.exe -s quit
Настройка брандмауэра Windows
По умолчанию для обработки HTTP-запросов Nginx использует TCP-порт 80. Если требуется обеспечить доступ к сайту с других устройств, необходимо разрешить входящие подключения через данный порт в брандмауэре Windows.
Чтобы это сделать, откройте настройки брандмауэра при помощи сочетания клавиш Win R, где введите wf.msc и нажмите Enter.

В открывшемся окне перейдите на Inbound Rules в разделе Windows Defender Firewall with Advanced Security on Local Computer, и в разделе Actions нажмите New Rule.

В стартовом окне мастера переключитесь на Port. Для продолжения нажмите Next.

При выборе протокола переключитесь на TCP, а при выборе порта нажмите на Specific local ports, а в строку справа введите 80. Для перехода к следующему шагу нажмите Next.

На следующем шаге выберите Allow the connection и нажмите Next.

Затем отметьте галочками все строки и нажмите Next для продолжения.

После чего укажите название создаваемого правила, например, Nginx (HTTP-In) и для его сохранения нажмите Finish.

Настройка Nginx для работы в качестве службы
По умолчанию Nginx в Windows запускается как обычное приложение. Это означает, что после перезагрузки системы веб-сервер не будет включаться автоматически. Кроме того, для управления Nginx потребуется вручную использовать команды командной строки.
Для автоматического запуска Nginx вместе с операционной системой и управления им через стандартный механизм служб Windows можно использовать WinSW.
WinSW – утилита, позволяющая запускать различные приложения в Windows в качестве системных служб. В данном случае WinSW будет использоваться для запуска процесса Nginx и обеспечения его автоматического старта после загрузки Windows Server.
Откройте на сервере браузер и перейдите на страницу релизов WinSW.

Здесь откройте вкладку Assets в разделе актуальной версии WinSW и кликните WinSW-x64.exe для загрузки утилиты.

По окончании загрузки скопируйте полученный файл в каталог C:\nginx.
Затем переключитесь в командную строку и переименуйте файл WinSW-x64.exe в nginx-service.exe:
rename WinSW-x64.exe nginx-service.exe
Здесь же создайте файл конфигурации WinSW:
type NUL > nginx-service.xml
Откройте созданный файл при помощи блокнота.

Скопируйте в него следующее содержимое:
<service>
<id>nginx</id>
<name>Nginx</name>
<description>Nginx Web Server</description>
<executable>C:\nginx\nginx.exe</executable>
<workingdirectory>C:\nginx</workingdirectory>
<startmode>Automatic</startmode>
<stoptimeout>15sec</stoptimeout>
<logpath>C:\nginx\logs</logpath>
<log mode="roll" />
<onfailure action="restart" delay="10 sec" />
</service>
В данном случае:
executable– путь к исполняемому файлуnginx.exe;workingdirectory– рабочий каталог Nginx;startmode– параметр устанавливает автоматический запуск службы вместе с операционной системой;onfailure– определяет необходимость перезапуска службы в случае её внезапного завершения.
После чего закройте файл, сохранив внесённые изменения.
Находясь в каталоге C:\nginx, следующей командой проверьте корректность конфигурации Nginx:
nginx.exe -t
В выводе команды не должно быть сообщений о каких-либо ошибках.

Если ошибок нет, проинсталлируйте службу:
nginx-service.exe install
Чтобы убедиться в том, что служба установлена, выполните команду:
sc.exe query nginx
Из вывода команды видно, что служба установлена, но пока не работает.

Для запуска службы, находясь всё в том же каталоге C:\nginx, выполните в командной строке:
nginx-service.exe start
Чтобы проверить, что служба действительно работает, ещё раз используйте команду sc.exe query nginx:

Либо запустите диспетчер сервисов через Win R, где наберите services.msc и нажмите Enter.

В открывшемся списке найдите и откройте службу nginx.

Состояние Running в строке Service status свидетельствует о том, что служба в настоящий момент работает.
Чтобы проверить доступность сайта из сети, откройте браузер на своём компьютере и перейдите по ссылке вида http://X.X.X.X, где замените X.X.X.X на IP-адрес вашего сервера.

