Windows Server 2008 R2 (x64)에서 Windows 서비스로 nginx를 실행하고 있습니다. 나는 그것을 위해 Windows Service Wrapper를 사용하고 있습니다. (실제로, 나는이 튜토리얼을 따랐습니다 : http://mercurial.selenic.com/wiki/HgServeNginxWindows .)
서비스가 정상적으로 실행되고 있습니다. 그러나 서버는 신호를 처리하지 않습니다 (예 : 중지 / 재로드).
즉, 서비스를 중지하면 nginx가 중지되지 않습니다. (나는 그것을 죽여야한다.)
그리고 명령 줄에서 구성을 다시로드하려는 경우 :
C:\Users\Administrator>E:\apath\nginx\nginx.exe -p E:\apath\nginx -c E:\apath\nginx.conf -s reload
출력합니다 :
nginx: [error] OpenEvent("Global\ngx_reload_4268") failed (5: Access is denied)
관리자 권한으로 명령을 실행 중이며 서비스가 NETWORK SERVICE 사용자로 실행 중입니다.
힌트 나 비슷한 문제가 있습니까?
답변
reload
서비스 실행과 동일한 계정으로 실행해야합니다 . 예를 들어, nginx를 SYSTEM으로 실행하면 다음 psexec
도구 를 사용할 수 있습니다 .
PSEXEC -s c:\nginx\nginx.exe -p c:\nginx -s reload
답변
LOCAL SYSTEM에서 nginx-service를 실행하고 다음 xml 구성을 사용합니다.
<service>
<id>nginx-service</id>
<name>nginx-service</name>
<description>nginx-service</description>
<executable>c:\nginx\nginx.exe</executable>
<logpath>c:\nginx\</logpath>
<logmode>roll</logmode>
<depend></depend>
<startargument>-pc:\nginx</startargument>
<stopexecutable>c:\nginx\nginx.exe</stopexecutable>
<stopargument>-s</stopargument>
<stopargument>stop</stopargument>
</service>
Windows Service Wrapper 1.18을 사용하고 있으며이 구성이 적합합니다. Nginx 프로세스는 이제 정상적으로 중지되어야합니다. 행운을 빕니다.
답변
시도해야 할 몇 가지 :
-
NETWORK SERVICE 계정에서 실행하는 이유는 무엇입니까? 모든 서비스 인 LocalSystem에 대해 기본값을 사용하십시오.
-
이 자습서를 따라 다른 래퍼 AlwaysUp을 사용해보십시오 . 작동하면 Windows 서비스 래퍼에 문제가있는 것일 수 있습니다.
찾은 것을보고하십시오.
답변
nginx 1.9.15가 설치된 Windows 10에서 나를 위해 작동하려면 추가해야했습니다.
-p c:\nginx
중지 논쟁에서
<service>
<id>nginx</id>
<name>nginx</name>
<description>nginx</description>
<executable>c:\nginx\nginx.exe</executable>
<logpath>c:\nginx\</logpath>
<logmode>roll</logmode>
<depend></depend>
<startargument>-p</startargument>
<startargument>c:\nginx</startargument>
<stopexecutable>c:\nginx\nginx.exe</stopexecutable>
<stopargument>-p</stopargument>
<stopargument>c:\nginx</stopargument>
<stopargument>-s</stopargument>
<stopargument>stop</stopargument>
</service>
답변
- 열기
cmd
로 관리자 . - 그런 다음
cd
nginx가있는 폴더로 이동 한 후 다음 명령을 실행하십시오.
cmd (관리자 권한)
cd E:\apath\nginx\nginx.exe
nginx -s reload