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 这种方式比较好。
先从 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)。。。

img

参考链接