Запуск nginx службой в Windows

Запуск nginx службой в Windows будет осуществляться с помощью программы Windows Service Wrapper.
Скачать её можно тут: http://download.java.net/maven/2/com/sun/winsw/winsw/.
Необходимо скачать .exe файл нужной версии (отлично подошла версия 1.7) и переместить в корень директории, где расположен nginx (например D:\Programs\nginx-1.7.2\), переименовав данный файл в ngsrvc.exe. В той же директории необходимо создать xml файл с именем ngsrvc.xml.

Содержимое файла ngsrvc.xml

<service>
<id>Nginx</id>
<name>Nginx</name>
<description>Nginx Web Server</description>
<executable>D:\Programs\nginx-1.7.2\nginx.exe</executable>
<logpath>D:\Programs\nginx-1.7.2\service_logs\</logpath>
<logmode>roll</logmode>
<depend></depend>
<startargument>-p D:\Programs\nginx-1.7.2\ -c conf\nginx.conf</startargument>
<stopargument>-p D:\Programs\nginx-1.7.2\ -c conf\nginx.conf -s stop</stopargument>
</service>

Где:

  • D:\Programs\nginx-1.7.2\nginx.exe путь до исполняемого файла nginx
  • D:\Programs\nginx-1.7.2\service_logs\ путь, по которому Windows Service Wrapper будет хранить свои лог файлы (если директории нет, нужно её создать).
  • В <startargument> передаются параметры обязательно необходимые для корректного запуска nginx как сервис, дело в том что nginx при формировании путей использует косую черту (как в Linux — /), соответственно при использовании nginx в Windows необходимо использовать обратную косую черту (обратный слеш — \). Именно по-этому при запуске и остановке сервиса указывается рабочая директория параметром -p и относительный путь к конфигурационному файлу -c.

Без корректного указания параметров -c и -p появлялась ошибка в логах Windows Service Wrapper примерного содержания:

2014/07/04 13:05:39 [emerg] 3236#1168: CreateFile() "D:\Programs\nginx-1.7.2\nginx/conf/nginx.conf" failed (3: Системе не удается найти указанный путь)

Для того, чтобы зарегистрировать сервис, необходимо запустить: ngsrvc.exe install , после чего указанный сервис появится в оснастке Администрирование -> Службы , откуда станет возможно ей управлять.
Не забудте создать папку service_logs, как указано в xml файле.
Дополнительные команды:

  • Запустить — ngsrvc.exe start
  • Остановить — ngsrvc.exe stop
  • Рестартовать — ngsrvc.exe restart
  • Деинсталляция службы — ngsrvc.exe uninstall

Архив с программой и конфигурационным файлом: ngsrvc

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *