Windows 服务器 Jar/Nginx 开机自启动实战:NSSM 保姆级教程

 更新时间:2026年07月06日 14:40:13   作者:LuckyTHP  
本文介绍如何使用 NSSM(Non-Sucking Service Manager) 将 jar 和 Nginx 注册为 Windows 服务,实现真正的开机自动启动,并补充常用命令与常见问题排查,感兴趣的朋友一起看看吧

前言

在 Windows Server 上部署 Spring Boot jar 包和 Nginx 后,每次服务器重启都需要手动登录、执行启动脚本,非常麻烦。本文介绍如何使用 NSSM(Non-Sucking Service Manager) 将 jar 和 Nginx 注册为 Windows 服务,实现真正的开机自动启动,并补充常用命令与常见问题排查。

一、NSSM 简介

NSSM 是一款轻量级的 Windows 服务封装工具,它可以把任意可执行程序(exe、bat、jar 对应的 java.exe 等)注册为系统服务,支持:

  • 开机自启
  • 崩溃自动重启
  • 日志重定向
  • 无需用户登录即可运行

二、下载与安装 NSSM

  1. 官网下载:https://nssm.cc/download
  2. 解压后得到 nssm.exe(64 位系统用 win64/nssm.exe
  3. nssm.exe 放到一个固定目录,例如 C:\tools\nssm.exe,或者放到项目目录下

建议把 NSSM 路径加到系统环境变量,这样任意目录都能直接执行 nssm 命令。

三、实战:jar 包注册为服务

假设你的 jar 包路径为 C:\app\backend\app-server.jar,JDK 路径为 C:\Program Files\Java\jdk-17\bin\java.exe

3.1 安装服务

以管理员身份打开 CMD:

cd /d C:\app\backend
nssm install app-server-service

会弹出 NSSM 配置窗口,填写:

配置项
PathC:\Program Files\Java\jdk-17\bin\java.exe
Startup directoryC:\app\backend
Arguments-Dfile.encoding=utf-8 -jar app-server.jar --spring.profiles.active=prod

点击 Install service

3.2 配置日志

切换到 I/O 标签页:

  • Output (stdout): C:\app\backend\logs\app-server-out.log
  • Error (stderr): C:\app\backend\logs\app-server-err.log

如果 logs 目录不存在,先手动创建。

3.3 启动并设置开机自启

nssm start app-server-service
nssm set app-server-service Start SERVICE_AUTO_START

或者使用 sc 命令:

sc config app-server-service start= auto

注意:start= auto 等号后必须有空格。

四、实战:Nginx 注册为服务

Nginx Windows 版不能原生作为服务运行,用 NSSM 封装是最稳的方式。

假设 Nginx 路径为 C:\nginx\nginx-1.28.0\nginx.exe

4.1 安装服务

cd /d C:\tools
nssm install nginx

配置:

配置项
PathC:\nginx\nginx-1.28.0\nginx.exe
Startup directoryC:\nginx\nginx-1.28.0
Arguments留空

4.2 配置日志

I/O 标签页:

  • Output (stdout): C:\nginx\nginx-1.28.0\logs\nssm-out.log
  • Error (stderr): C:\nginx\nginx-1.28.0\logs\nssm-err.log

4.3 启动并设置开机自启

nssm start nginx
nssm set nginx Start SERVICE_AUTO_START

五、常用 NSSM 命令

nssm start <服务名>        # 启动服务
nssm stop <服务名>         # 停止服务
nssm restart <服务名>      # 重启服务
nssm status <服务名>       # 查看状态
nssm remove <服务名>       # 删除服务(会弹窗确认)
nssm remove <服务名> confirm # 删除服务(静默确认)
nssm edit <服务名>         # 编辑服务配置

六、常见问题排查

6.1 sc config 报错

sc config 常见报错原因:

  • 没有以管理员身份运行 CMD
  • start= auto 等号后没加空格
  • 服务名拼写错误

推荐直接用 NSSM 命令:

nssm set <服务名> Start SERVICE_AUTO_START

6.2 服务启动失败

检查:

  1. Path、Startup directory、Arguments 是否填对
  2. JDK 或 Nginx 路径是否包含中文或空格,如有空格建议用英文路径或加引号
  3. 日志文件目录是否存在
  4. 端口是否被占用

6.3 服务启动后自动停止

可能是 Java 程序启动报错退出,查看 I/O 配置的日志文件定位问题。

七、总结

使用 NSSM 把 jar 和 Nginx 注册为 Windows 服务后,可以实现服务器重启自动启动,无需人工干预。相比任务计划程序,NSSM 更加稳定,支持自动恢复和日志重定向,是 Windows Server 部署的常用方案。

到此这篇关于Windows 服务器 Jar/Nginx 开机自启动实战:NSSM 保姆级教程的文章就介绍到这了,更多相关NSSM将 jar 和 Nginx 注册为 Windows 服务内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Nginx 过滤静态资源文件的访问日志的实现

    Nginx 过滤静态资源文件的访问日志的实现

    这篇文章主要介绍了Nginx 过滤静态资源文件的访问日志的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-10-10
  • Nginx出现403 Forbidden问题的常见原因与解决

    Nginx出现403 Forbidden问题的常见原因与解决

    Nginx 返回 403 Forbidden 错误通常表示客户端没有权限访问请求的资源,这种错误有许多可能的原因,本文将为大家介绍一下常见的原因和对应的解决方法,希望对大家有所帮助
    2025-03-03
  • nginx中的两个模块的proxy_pass的区别解析

    nginx中的两个模块的proxy_pass的区别解析

    在nginx中配置proxy_pass代理转发时,如果在proxy_pass后面的url加/,表示绝对根路径;如果没有/,表示相对路径,把匹配的路径部分也给代理走。本文给大家介绍nginx中的两个模块的proxy_pass的区别,感兴趣的朋友一起看看吧
    2021-11-11
  • nginx使用nginx-rtmp-module模块实现直播间功能

    nginx使用nginx-rtmp-module模块实现直播间功能

    做的过程出现很多问题,环境其实就需要nginx就可以,然后就是在播放的问题,m3u8的格式,mac直接访问就支持,苹果系统原生H5支持m3u8,还有就是手机直接访问也支持!但是其他其他系统PC端不支持,尝试了好多都不行,最后终于找到了一个支持m3u8格式H5播放
    2017-10-10
  • Nginx搭建高效的静态图片服务器的方法步骤

    Nginx搭建高效的静态图片服务器的方法步骤

    高效地管理和分发静态资源是至关重要的,本文主要介绍了Nginx搭建高效的静态图片服务器的方法步骤,具有一定的参考价值,感兴趣的可以了解一下
    2024-05-05
  • Nginx增添api接口的实现方法

    Nginx增添api接口的实现方法

    这篇文章给大家介绍了Nginx增添api接口的方法,文章通过代码示例介绍的非常详细,对大家的学习或工作有一定的帮助,具有一定的参考价值,需要的朋友可以参考下
    2023-10-10
  • Nginx的缓存配置与其他配置方法

    Nginx的缓存配置与其他配置方法

    Nginx的压缩功能配置是通过gzip压缩技术,可以使原来的网页的内容大小压缩成原来的30%,这样,用户在访问网页的时候,由于传输的内容比原内容小很多,故而速度会快很多,本文给大家介绍Nginx的缓存配置与其他配置方法,感兴趣的朋友一起看看吧
    2023-12-12
  • Nginx访问本地静态资源详细步骤(推荐)

    Nginx访问本地静态资源详细步骤(推荐)

    Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务,这篇文章主要介绍了nginx配置访问本地静态资源,需要的朋友可以参考下
    2022-12-12
  • Windows下Nginx的启动停止等基本操作命令详解

    Windows下Nginx的启动停止等基本操作命令详解

    在Windows下使用Nginx,我们需要掌握一些基本的操作命令,今天为大家分享几个Windows下操作Nginx的基本命令
    2018-10-10
  • nginx实现指定url转发详解

    nginx实现指定url转发详解

    这篇文章主要为大家详细介绍了nginx实现指定url转发的相关知识,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2024-11-11

最新评论