Windows系统下的nginx安装和开机自启动实现

301 阅读3分钟

安装

打开nginx官网,在Stable version(稳定版)分类下方点击nginx/Windows-1.xx进行下载。

image-20230910123654284.png

解压到安装路径(注意路径不要存在中文),这里我选择解压到D盘根目录,如下图:

image-20230910111954041.png

进入nginx的安装路径nginx-1.24.0,下文将使用%nginx%表示nginx安装路径。在此目录下打开命令行工具,运行start .\nginx.exe启动nginx,随着黑色运行窗口一闪而过,表示nginx成功。注意,如果电脑弹出针对nginx的权限询问窗口,请选择允许。

此时我们打开浏览,输入127.0.0.1localhost,可以看到nginx运行成功界面,如下图:

image-20230910112435602.png

其实默认打开的是位于%nginx%/html/index.html页面,具体可参考下一节配置说明

配置

%nginx%/conf/nginx.confnginx的配置文件,打开配置文件,找到http->server模块,可以看到对于80端口的监听配置如下图:

image-20230910113456201.png

这里针对几个重要的部分进行讲解。

  • server模块下的listent 80;表示监听80端口,也就是上述的http:://127.0.0.1(80端口是http的默认监听端口,没明确写明即表示访问的是80端口);
  • locathin / {...}表示匹配该端口下的所有访问路径;
  • location下的rootindex分别表示对应的文件夹根目录和默认文件索引。

所以当我们在浏览器输入127.0.0.1时,会命中监听80端口的server模块,并定位到html下的index.html文件,最终展示在浏览器中。

注意事项

  • 编辑配置文件前,最好做好备份工作。修改完配置文件后,请在命令行中运行nginx -t命令验证配置的正确性;
  • 请不要使用windows自带的记事本程序编辑配置文件,否则保存时可能由于保存的编码格式不正确,导致nginx无法运行。记事本使用UTF-8-BOM编码保存,而配置文件需要用UTF-8编码保存。推荐使用vscode进行编辑

以下是一些常用命令

# 启动nginx服务
start nginx
# 强制关闭nginx服务
nginx -s stop
# 优雅地关闭nginx服务
nginx -s quit
# 修改配置后重新加载生效
nginx -s reload 
# 测试nginx配置文件是否正确
nginx -t -c 
# 检查nginx是否正在运行
tasklist /fi "imagename eq nginx.exe"

nginx -s stopnginx -s quit的区别在于nginx -s stop是强制关闭,nginx -s quit会处理完当前正在运行的工作后关闭。可以类比为我们从电脑中弹出U盘,一个是直接拔U盘,一个是先在任务栏弹出U盘后再进行拔出。

部分命令运行情况见下图:

image-20230910120244055.png

开机自启动

一般web服务器都需要设置开机自启动。否则当服务器由于各种主观或者客观的原因重启后,还需要手动开启,增加了不必要的工作量且降低了web服务器的稳定性。

这里我们是用Windows Service Wrapper处理,思路是将nginx包装成Windows系统下的服务,并将服务设置为自动启动即可。

  1. github下载winsw程序,我们下载最新稳定版的WinSw v2.12.0版本,并根据电脑支持的.net版本选择,此处下载WinSW.NET4.exe(.NET runtime),见下图:

image-20230910120209833.png

  1. 将下载的WinSW.NET4.exe拷贝到nginx安装路径,并重命名为nginx-service.exe.

  2. 同级路径下新建nginx-service.xml文件,文件内容如下

    <service>
        <id>nginx</id>
        <name>nginx</name>
        <description>nginx servcie</description>
        <logpath>D:\nginx-1.24.0\</logpath>
        <logmode>roll</logmode>
        <depend></depend>
        <executable>D:\nginx-1.24.0\nginx.exe</executable>
        <stopexecutable>D:\nginx-1.24.0\nginx.exe -s stop</stopexecutable>
    	<restartexecutable>D:\nginx-1.24.0\nginx.exe -s reload</restartexecutable>
    </service>
    

    注意:请自行修改nginx路径

  3. 【可选】新建nginx-service.exe.config文件,内容如下:

    <configuration>
       <startup>
         <supportedRuntime version="v2.0.50727" />    
         <supportedRuntime version="v4.0" />  
      </startup>
      <runtime>
         <generatePublisherEvidence enabled="false"/>   
      </runtime>
     </configuration>
    
  4. 安装并启动服务

    # 安装服务时必须先关闭nginx
    nginx -s quit
    # 安装服务
    nginx-service.exe install
    # 运行服务
    nginx-service.exe start
    

    其他命令

    # 停止服务
    nginx-service.exe stop
    # 重启服务
    nginx-service.exe restart
    # 卸载
    nginx-service.exe uninstall
    
  5. 将服务设置为自启动

    打开windows服务管理页面(win+r,并输入services.msc),找到nginx服务,并设置为启动类型为自动即可,见下图:

    image-20230910123523167.png

以上就是本篇文章的全部内容。