Запуск 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