Nginx for Windows的安装和配置
安装 Nginx
Neginx 安装比较简单,从官网 nginx for Windows 下载页面下载压缩包,解压到C:\nginx\目录下即可。
快速停止或关闭 Nginx:nginx -s stop
正常停止或关闭 Nginx:nginx -s quit
配置文件修改重装载命令:nginx -s reload
注册 Nginx 系统服务
Nginx 运行在 Windows 服务器上,系统重启后 Nginx 并不会自动启动。有时候意外重启忘记动手启动 Nginx,网站就会无法访问了,比较麻烦。如何作为一个系统服务自动启动,现在并没有官方的解决方案 。目前网上的解决方案大概有两种方式:
- 使用 Windows Service Wrapper 这个第三方解决方案
- 使用 instsrv / servany 这个微软在 Resource Kit Tools 中提供的工具程序
对比了下还是 Windows Service Wrapper 这种方式比较好。
先从 Windows service wrapper Releases 页面下载最新的 WinSW.NET2.exe 或 WinSW.NET4.exe,下载后复制并重命名到路径:C:\nginx\nginxws.exe 。
然后在 C:\nginx\nginxws.xml 新建配置文件,内容如下:
<configuration>
<id>nginx</id>
<name>Nginx</name>
<description>Nginx for windows</description>
<executable>C:\nginx\nginx.exe</executable>
<logpath>C:\nginx\logs</logpath>
<logmode>roll</logmode>
<depend></depend>
<startargument>-p</startargument>
<startargument>C:\nginx</startargument>
<stopargument>-p</stopargument>
<stopargument>C:\nginx</stopargument>
<stopargument>-s</stopargument>
<stopargument>stop</stopargument>
</configuration>
打开 CMD,执行如下命令安装系统服务:C:\nginx\nginxws.exe install,窗口出现安装成功的消息即可。
我根据网上的文章操作的时候,在这边碰到个让人吐血的问题,按上述方式安装好服务后,无法启动 nginx,然后在错误日志中发现 executable 路径前面多个了个?
2018-01-07 21:19:44,769 INFO - Starting ServiceWrapper in the service mode
2018-01-07 21:19:44,832 INFO - Starting ?C:\nginx\nginx.exe -p c:\nginx
2018-01-07 21:19:44,847 INFO - Starting ?C:\nginx\nginx.exe -p c:\nginx
2018-01-07 21:19:44,863 DEBUG - Completed. Exit code is 0
检查配置文件是对的,查看 Windows service wrapper 的源代码也没发现什么地方能多个?出来,最后实在没办法,从头手打一遍配置文件,重新安装服务,居然好了。才发现,原来是<executable>与C:\nginx\nginx.exe之间多了个不可见字符(\u202A)。。。
