Windows服务器注册Nginx服务/Nginx开机自启

Windows上Nginx下载

Windows版本因为文件访问句柄数被限制为1024了,当访问量大时就会无法响应。这点非常坑。

这种需要安装特定的版本。

建议下载下面这个

https://www.psvmc.cn/article/2022-11-17-nginx-windows.html

优化Windows上Nginx连接数

上面的Nginx其实在连接数优化上是修改了注册表才生效的。

Tweak-Optimize tcpip parameters for nginx connections.reg

1
2
3
4
5
6
7
8
9
10
11
REGEDIT4

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]
"TcpWindowSize"=dword:0000faf0
"MaxUserPort"=dword:0000F000
"TcpTimedWaitDelay"=dword:0000001e
"MaxFreeTWTcbs"=dword:000003E8
"MaxHashTableSize"=dword:0000800
"MaxFreeTcbs"=dword:0000800
"TcpNumConnections"=dword:00fffffe
; "StrictTimeWaitSeqCheck"=dword:00000001

开机启动

方式1 启动项方式

开机启动

CMD+R运行以下命令打开开机启动文件夹

1
shell:Common Startup

拷贝需要开机启动的程序的快捷方式到此文件夹即可

打开任务管理器-启动查看启动项(Win10上可以/Win Server2012无法查看)

注意

不要使用shell:startup,这个是用户的启动目录,只有用户登录后才会启动。

停用Nginx进程

1
taskkill /f /t /im nginx.exe

方式2 服务方式

添加服务

添加服务自动运行

该方式不支持添加bat文件为服务

下载地址:winsw

image-20210430125836118

我这里下载的是WinSW.NET4.exe

放到Nginx的目录下,重命名为mynginx.exe

同级目录添加mynginx.xml,内容如下:

1
2
3
4
5
6
7
8
9
10
<service>
<id>nginx</id>
<name>nginx</name>
<description>nginx</description>
<logpath>D:\Tools\nginx-1.12.2\</logpath>
<logmode>roll</logmode>
<depend></depend>
<executable>D:\Tools\nginx-1.12.2\nginx.exe</executable>
<stopexecutable>D:\Tools\nginx-1.12.2\nginx.exe -s stop</stopexecutable>
</service>

注册服务

1
mynginx.exe install

卸载服务

1
mynginx.exe uninstall

注意

卸载后需要重启才能注册同名的服务。

服务启动

打开services.msc,找到nginx服务启动即可。

image-20250313181711177

重启

我这里测试的通过服务重启是无效的

我们可以先结束所有进程再服务启动

1
taskkill /f /t /im nginx_basic.exe

注意

  • nginx_basic.exe根据实际的情况设置

Net Framework

4.0下载地址:https://www.microsoft.com/zh-cn/download/confirmation.aspx?id=17718