Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Add nginx.exe as Windows system service (like Apache)?

I set up NGINX as a front end server for static content and I use Apache as a back-end server for other thing.

The thing is I can't find a logical answer that allows me to make nginx.exe a Windows system service (like my Apache).

Any come across an answer to this?

like image 825
user1305810 Avatar asked Apr 08 '12 07:04

user1305810


People also ask

How do I start Nginx exe?

Nginx installation on Windows ServerDownload the latest mainline release from https://nginx.org/en/download.html. Extract the file to the location where you want to install Nginx, such as C:\nginx. Note: We recommend creating a new directory for Nginx.

How can I tell if nginx is running on Windows?

Check Nginx is running or not We can verify that the Nginx is installed and running by using the following command: $ ps -ef | grep nginx.

How do I disable Nginx in Windows 10?

Make a . bat file in the nginx.exe folder with the command: nginx.exe -s quit . Then make a shortcut to desktop or whereever needed.


1 Answers

How to do it with Windows Service Wrapper

(Note: There are easier alternatives by now - see also solutions described here below using chocolatey package manager by suneg and using NSSM directly from Adamy)

  1. Download the latest version of Windows Service Wrapper via github or nuget.
    • Current version as of this writing is v2.2.0
    • Since v2.x executables for .NET2.0 and .NET4.0 are available - others only on demand.
  2. Rename winsw-*.exe to something like nginxservice.exe.
    • This is the name that will show up for the process that owns your nginx process.
  3. Place an XML file next to the exe with the same base name, e.g. nginxservice.xml. The contents should be like below (verify your nginx location).

    <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> 
    • You can find up to date details about the configuration on the config github page, a generic example showing all possible options here and an installation guide.
  4. Run the command nginxservice.exe install as administrator.

You will now have an nginx service in your Services! (It is set to start automatically on boot; if you want to start your server, you must manually start the service (net start nginx).)


Detailed description of correctly setting up nginx as a Windows Service: http://web.archive.org/web/20150819035021/http://misterdai.yougeezer.co.uk/posts/2009/10/16/nginx-windows-service/

Additional info not contained in above blog post:

You can find the latest version of the Windows Service Wrapper also via this Maven Repository: http://repo.jenkins-ci.org

Examples for Maven + Gradle:

<dependency>     <groupId>com.sun.winsw</groupId>     <artifactId>winsw</artifactId>     <version>2.2.0</version>     <classifier>bin</classifier>     <packaging>exe</packaging> </dependency>  <repository>     <id>jenkinsci</id>     <name>jenkinsci-releases</name>     <url>http://repo.jenkins-ci.org/releases</url> </repository>  compile "com.sun.winsw:winsw:2.2.0"  repositories {     mavenCentral()     maven { url http://repo.jenkins-ci.org/releases } } 
like image 189
Jörg Avatar answered Nov 04 '22 00:11

Jörg