Estou executando o nginx no Windows Server 2008 R2 (x64) como um serviço do Windows. Estou usando o Windows Service Wrapper para isso. (Na verdade, segui este tutorial: http://mercurial.selenic.com/wiki/HgServeNginxWindows .)
O serviço está funcionando bem. No entanto, o servidor não processa os sinais (por exemplo, parar / recarregar).
Isso significa que, se eu interromper o serviço, o nginx não será parado. (Eu tenho que matá-lo.)
E quando eu quero recarregar a configuração da linha de comando:
C:\Users\Administrator>E:\apath\nginx\nginx.exe -p E:\apath\nginx -c E:\apath\nginx.conf -s reload
Emite:
nginx: [error] OpenEvent("Global\ngx_reload_4268") failed (5: Access is denied)
Estou executando o comando como administrador e o serviço está sendo executado no usuário NETWORK SERVICE.
Alguma dica ou problema semelhante?
Respostas:
Eu executo meu serviço nginx em LOCAL SYSTEM e uso a seguinte configuração xml:
Estou usando o Windows Service Wrapper 1.18 e essa configuração funciona para mim. Os processos Nginx devem ser interrompidos normalmente agora. Boa sorte.
fonte
Você deve executar
reload
da mesma conta que a execução do serviço. Por exemplo, se você executar o nginx como SYSTEM, poderá usar apsexec
ferramenta:PSEXEC -s c:\nginx\nginx.exe -p c:\nginx -s reload
fonte
Algumas coisas para tentar:
Por que executar na conta NETWORK SERVICE? Tente com o padrão para todos os serviços, LocalSystem.
Siga este tutorial para tentar outro wrapper, o AlwaysUp . Se funcionar, você pode estar enfrentando um problema com o Windows Service Wrapper.
Por favor, reporte o que encontrou.
fonte
para que ele funcione para mim no Windows 10 com o nginx 1.9.15, tive que adicionar
nos argumentos de parada
fonte
cmd
como administrador .cd
vá para a pasta em que o nginx está localizado e execute os comandos:cmd (como administrador)
fonte