Lancer Nginx en tant que service Windows

Lancer Nginx en tant que service Windows

Installer Nginx

Si ce n’est pas déjà fait, télécharger Nginx pour Windows sur le site officiel (nginx/Windows-x.xx.xx).

Extraire l’archive dans le dossier désiré.
Pour cet article, nous allons utiliser le dossier C:\nginx .

Nginx peut être configuré via le fichier conf/nginx.conf .

Créer un script d’arrêt

Nginx peut être stoppé en utilisant la commande nginx -p C:\nginx -s stop.

Il arrive cependant que cette commande échoue et dans ce cas il faut stopper le processus nginx.exe via la commande taskkill /IM nginx.exe /F /T.

  • /IM spécifie le nom du processus
  • /F force l’arrêt du processus
  • /T permet de stopper tous les processus fils du processus spécifié par /IM

Pour des raisons pratiques, nous allons créer un script permettant d’arrêter à coup sure Nginx.

Pour celà, créer un fichier C:\nginx\nginx-stop.bat avec le contenu suivant :

1
2
C:\nginx\nginx.exe -p c:\nginx -s stop
taskkill /IM nginx.exe /F /T

Créer le service

Il n’est pas possible directement dans Windows de créer un service à partir d’un exécutable.

Nous allons donc avoir besoin d’un outil pour celà, à savoir WinSW (github).

Commencer par télécharger la dernière version de WinSW par ici. Seul le fichier winsw-x.x.x-bin.exe nous intéresse.

Copier le fichier winsw-x.x.x-bin.exe dans le dossier C:\nginx et le renommer en nginx-service.exe.

Créer un fichier de configuration nginx-service.xml. Ce fichier doit obligatoirement porter le même nom que l’exécutable de WinSW.

Y saisir le contenu suivant :

1
2
3
4
5
6
7
8
9
10
11
12
<service>
<id>nginx</id>
<name>Nginx</name>
<description>Serveur web 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-stop.bat</stopexecutable>
</service>

Cette configuration définit un service Nginx dont la commande de démarrage est c:\nginx\nginx.exe -p c:\nginx et la commande d’arrêt, le script c:\nginx\nginx-stop.bat créé précédemment.

Cette configuration est relativement basique mais fait le travail.
Vous pouvez cependant l’adapter à vos besoins en suivant la documentation de WinSW.

Installer le service

L’exécutable créé précédemment permet la gestion complète du service, y compris son installation.

Pour celà, ouvrir une ligne de commande en mode administrateur et exécuter les commandes suivantes :

1
2
3
C:
cd C:\nginx
nginx-service install

Supprimer le service

Ouvrir une ligne de commande en mode administrateur et exécuter les commandes suivantes :

1
2
3
C:
cd C:\nginx
nginx-service uninstall

Gestion du service

Le service peut être géré depuis l’interface de gestion des services de Windows, mais aussi via l’exécutable nginx-service.

MéthodeVérifier l’état du serviceDémarrer le serviceStopper le service
Avec nginx-servicenginx-service statusnginx-service startnginx-service stop
Avec la commande netnet start nginxnet stop nginx

Pour consulter la liste des commandes, taper la commande nginx-service --help.

Astuce : Il est possible d’ajouter le dossier C:\nginx dans le PATH pour accéder à la commande nginx-service en ligne de commande depuis n’importe quel dossier.

PartagerCommentaires