J'exécute nginx sur Windows Server 2008 R2 (x64) en tant que service Windows. J'utilise Windows Service Wrapper pour cela. (En fait, j'ai suivi ce tutoriel: http://mercurial.selenic.com/wiki/HgServeNginxWindows .)
Le service fonctionne bien. Cependant, le serveur ne traite pas les signaux (par exemple arrêt / rechargement).
Cela signifie que si j'arrête le service, nginx n'est pas arrêté. (Je dois le tuer.)
Et quand je veux recharger la configuration depuis la ligne de commande:
C:\Users\Administrator>E:\apath\nginx\nginx.exe -p E:\apath\nginx -c E:\apath\nginx.conf -s reload
Il génère:
nginx: [error] OpenEvent("Global\ngx_reload_4268") failed (5: Access is denied)
J'exécute la commande en tant qu'administrateur et le service s'exécute sous l'utilisateur SERVICE RÉSEAU.
Des conseils ou des problèmes similaires?
Réponses:
Vous devez exécuter à
reload
partir du même compte que l'exécution du service. Par exemple, si vous exécutez votre nginx en tant que SYSTEM, vous pouvez utiliser l'psexec
outil:PSEXEC -s c:\nginx\nginx.exe -p c:\nginx -s reload
la source
J'exécute mon service nginx sous LOCAL SYSTEM et j'utilise la configuration xml suivante:
J'utilise Windows Service Wrapper 1.18 et cette configuration fonctionne pour moi. Les processus Nginx devraient maintenant être arrêtés sans problème. Bonne chance.
la source
Quelques choses à essayer:
Pourquoi exécuter dans le compte NETWORK SERVICE? Essayez avec la valeur par défaut pour tous les services, LocalSystem.
Suivez ce didacticiel pour essayer un autre wrapper, AlwaysUp . Si cela fonctionne, vous pouvez être confronté à un problème avec Windows Service Wrapper.
Veuillez rapporter ce que vous trouvez.
la source
pour que cela fonctionne pour moi sur Windows 10 avec nginx 1.9.15 j'ai dû ajouter
dans les arguments d'arrêt
la source
cmd
tant qu'administrateur .cd
dans le dossier où se trouve nginx, puis exécutez les commandes:cmd (en tant qu'administrateur)
la source