Windows下将Nginx设置注册安装为服务方法!

发布于:2025-06-06 ⋅ 阅读:(31) ⋅ 点赞:(0)

一、需求背景

每次启动 Nginx 都要去到 Nginx 安装目录下寻找 nginx.exe 文件点击,很是麻烦。

并且远程登录桌面,有时注销用户,会把在当前用户打开的nginx关闭了。

于是考虑可不可以跟其它服务一样能够开机自启?显然是可以的。把 Nginx 设置为一个 windows 服务便可以解决此问题。

下文环境为Windows 2012 R2或Windows 2019 R2或者Windows 2016 R2。

nginx下载路径:nginx: download

二、Nginx 设置为服务

主要分为两大步骤,其一准备好设置为服务的文件,其二安装为服务。

1、设置为服务后参考目录如下:

2、文件准备

Index of releases/com/sun/winsw/winsw

下载最新版本2.9.0,选择winsw-2.9.0-bin.exe,将winsw-2.9.0-bin.exe文件复制到nginx解压的根目录,重命名为 nginx-service.exe

(1)准备nginx-service.exe

nginx 安装下载默认已知。接下来首先选择合适版本下载Windows Service Wrapper工具,该工具可设置nginx为windows服务。

下载后把下载的winsw-x.x.x-bin.exe 文件放在Nginx安装目录(D:\Environment\nginx-1.22.0),修改名称为nginx-service.exe,然后分别创建nginx-service.exe.config,nginx-service.xml文件,把这两个文件也放在Nginx安装目录下。注意安装目录不要带有空格,比如放在Program Files,可能会报错

(2)准备nginx-service.exe.config文件

创建文件nginx-service.exe.config内容如下:

nginx-service.exe.config内容如下:

<configuration>
<startup>
<supportedRuntime version="v2.0.50727" />
<supportedRuntime version="v4.0" />
</startup>
<runtime>
<generatePublisherEvidence enabled="false"/> 
</runtime>
</configuration>
(3)准备nginx-service.xml文件

创建文件nginx-service.xml内容如下:

nginx-service.xml内容如下(根据实际情况对路径进行调整,路径不要含有空格):

<service>
  <id>nginx</id>
  <name>Nginx Service</name>
  <description>High Performance Nginx Service</description>
  <logpath>D:\nginx-1.28.0\logs</logpath>
  <log mode="roll-by-size">
    <sizeThreshold>10240</sizeThreshold>
    <keepFiles>8</keepFiles>
  </log>
  <executable>D:\nginx-1.28.0\nginx.exe</executable>
  <startarguments>-p D:\nginx-1.28.0</startarguments>
  <stopexecutable>D:\nginx-1.28.0\nginx.exe</stopexecutable>
  <stoparguments>-p D:\nginx-1.28.0 -s stop</stoparguments>
</service>

3、安装 Nginx 服务

(1)安装服务

进入cmd命令行到nginx目录下输入下行命令安装服务

nginx-service.exe install
(2)可能遇到的问题

新电脑可能会遇到此问题,下载并安装即可。未出现忽略即可。

预计5-10分钟左右。

下载完成后进行安装出现如下。

(2)设置开机自启

然后去服务查看。默认是停止状态。

可点击启动,或者右击打开服务。然后进入下面界面可以直击启动,也可右击点击属性进一步设置。如根据需要设置为自动启动。

(3)测试

重启电脑,但不要登录用户,查看代理端口是否通(telnet 192.168.20.253 8080);登录用户,查看服务是否启动。

3、扩展

(1)删除nginx服务
sc delete 服务名
(2)可能遇到的其他问题

Niginx Service服务无法启动 如错误1067 进程意外终止
可能是端口监听代理出现冲突

Nginx-xxx\logs下查看错误日志,然后根据错误日志查找解决方案。
注意:每次修改完nginx.conf文件,需重新启动Niginx Service服务,方可生效。

(3)启动 nginx 脚本

nginx_start.bat

@echo off
::set location="C:\nginx-1.22.1"
cd /d %~dp0
start nginx
(4)关闭 nginx 脚本

nginx_stop.bat

@echo off
::set location="C:\nginx-1.22.1"
cd /d %~dp0
nginx.exe -s stop