Windows 服務(wù)器 Jar/Nginx 開機(jī)自啟動實戰(zhàn):NSSM 保姆級教程
前言
在 Windows Server 上部署 Spring Boot jar 包和 Nginx 后,每次服務(wù)器重啟都需要手動登錄、執(zhí)行啟動腳本,非常麻煩。本文介紹如何使用 NSSM(Non-Sucking Service Manager) 將 jar 和 Nginx 注冊為 Windows 服務(wù),實現(xiàn)真正的開機(jī)自動啟動,并補(bǔ)充常用命令與常見問題排查。
一、NSSM 簡介
NSSM 是一款輕量級的 Windows 服務(wù)封裝工具,它可以把任意可執(zhí)行程序(exe、bat、jar 對應(yīng)的 java.exe 等)注冊為系統(tǒng)服務(wù),支持:
- 開機(jī)自啟
- 崩潰自動重啟
- 日志重定向
- 無需用戶登錄即可運行
二、下載與安裝 NSSM
- 官網(wǎng)下載:https://nssm.cc/download
- 解壓后得到
nssm.exe(64 位系統(tǒng)用win64/nssm.exe) - 將
nssm.exe放到一個固定目錄,例如C:\tools\nssm.exe,或者放到項目目錄下
建議把 NSSM 路徑加到系統(tǒng)環(huán)境變量,這樣任意目錄都能直接執(zhí)行 nssm 命令。
三、實戰(zhàn):jar 包注冊為服務(wù)
假設(shè)你的 jar 包路徑為 C:\app\backend\app-server.jar,JDK 路徑為 C:\Program Files\Java\jdk-17\bin\java.exe。
3.1 安裝服務(wù)
以管理員身份打開 CMD:
cd /d C:\app\backend nssm install app-server-service
會彈出 NSSM 配置窗口,填寫:
| 配置項 | 值 |
|---|---|
| Path | C:\Program Files\Java\jdk-17\bin\java.exe |
| Startup directory | C:\app\backend |
| Arguments | -Dfile.encoding=utf-8 -jar app-server.jar --spring.profiles.active=prod |
點擊 Install service。
3.2 配置日志
切換到 I/O 標(biāo)簽頁:
- Output (stdout):
C:\app\backend\logs\app-server-out.log - Error (stderr):
C:\app\backend\logs\app-server-err.log
如果 logs 目錄不存在,先手動創(chuàng)建。
3.3 啟動并設(shè)置開機(jī)自啟
nssm start app-server-service nssm set app-server-service Start SERVICE_AUTO_START
或者使用 sc 命令:
sc config app-server-service start= auto
注意:start= auto 等號后必須有空格。
四、實戰(zhàn):Nginx 注冊為服務(wù)
Nginx Windows 版不能原生作為服務(wù)運行,用 NSSM 封裝是最穩(wěn)的方式。
假設(shè) Nginx 路徑為 C:\nginx\nginx-1.28.0\nginx.exe。
4.1 安裝服務(wù)
cd /d C:\tools nssm install nginx
配置:
| 配置項 | 值 |
|---|---|
| Path | C:\nginx\nginx-1.28.0\nginx.exe |
| Startup directory | C:\nginx\nginx-1.28.0 |
| Arguments | 留空 |
4.2 配置日志
在 I/O 標(biā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 啟動并設(shè)置開機(jī)自啟
nssm start nginx nssm set nginx Start SERVICE_AUTO_START
五、常用 NSSM 命令
nssm start <服務(wù)名> # 啟動服務(wù) nssm stop <服務(wù)名> # 停止服務(wù) nssm restart <服務(wù)名> # 重啟服務(wù) nssm status <服務(wù)名> # 查看狀態(tài) nssm remove <服務(wù)名> # 刪除服務(wù)(會彈窗確認(rèn)) nssm remove <服務(wù)名> confirm # 刪除服務(wù)(靜默確認(rèn)) nssm edit <服務(wù)名> # 編輯服務(wù)配置
六、常見問題排查
6.1 sc config 報錯
sc config 常見報錯原因:
- 沒有以管理員身份運行 CMD
start= auto等號后沒加空格- 服務(wù)名拼寫錯誤
推薦直接用 NSSM 命令:
nssm set <服務(wù)名> Start SERVICE_AUTO_START
6.2 服務(wù)啟動失敗
檢查:
- Path、Startup directory、Arguments 是否填對
- JDK 或 Nginx 路徑是否包含中文或空格,如有空格建議用英文路徑或加引號
- 日志文件目錄是否存在
- 端口是否被占用
6.3 服務(wù)啟動后自動停止
可能是 Java 程序啟動報錯退出,查看 I/O 配置的日志文件定位問題。
七、總結(jié)
使用 NSSM 把 jar 和 Nginx 注冊為 Windows 服務(wù)后,可以實現(xiàn)服務(wù)器重啟自動啟動,無需人工干預(yù)。相比任務(wù)計劃程序,NSSM 更加穩(wěn)定,支持自動恢復(fù)和日志重定向,是 Windows Server 部署的常用方案。
到此這篇關(guān)于Windows 服務(wù)器 Jar/Nginx 開機(jī)自啟動實戰(zhàn):NSSM 保姆級教程的文章就介紹到這了,更多相關(guān)NSSM將 jar 和 Nginx 注冊為 Windows 服務(wù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Nginx 過濾靜態(tài)資源文件的訪問日志的實現(xiàn)
這篇文章主要介紹了Nginx 過濾靜態(tài)資源文件的訪問日志的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-10-10
Nginx出現(xiàn)403 Forbidden問題的常見原因與解決
Nginx 返回 403 Forbidden 錯誤通常表示客戶端沒有權(quán)限訪問請求的資源,這種錯誤有許多可能的原因,本文將為大家介紹一下常見的原因和對應(yīng)的解決方法,希望對大家有所幫助2025-03-03
nginx中的兩個模塊的proxy_pass的區(qū)別解析
在nginx中配置proxy_pass代理轉(zhuǎn)發(fā)時,如果在proxy_pass后面的url加/,表示絕對根路徑;如果沒有/,表示相對路徑,把匹配的路徑部分也給代理走。本文給大家介紹nginx中的兩個模塊的proxy_pass的區(qū)別,感興趣的朋友一起看看吧2021-11-11
nginx使用nginx-rtmp-module模塊實現(xiàn)直播間功能
做的過程出現(xiàn)很多問題,環(huán)境其實就需要nginx就可以,然后就是在播放的問題,m3u8的格式,mac直接訪問就支持,蘋果系統(tǒng)原生H5支持m3u8,還有就是手機(jī)直接訪問也支持!但是其他其他系統(tǒng)PC端不支持,嘗試了好多都不行,最后終于找到了一個支持m3u8格式H5播放2017-10-10
Nginx搭建高效的靜態(tài)圖片服務(wù)器的方法步驟
高效地管理和分發(fā)靜態(tài)資源是至關(guān)重要的,本文主要介紹了Nginx搭建高效的靜態(tài)圖片服務(wù)器的方法步驟,具有一定的參考價值,感興趣的可以了解一下2024-05-05
Nginx訪問本地靜態(tài)資源詳細(xì)步驟(推薦)
Nginx?(engine?x)?是一個高性能的HTTP和反向代理web服務(wù)器,同時也提供了IMAP/POP3/SMTP服務(wù),這篇文章主要介紹了nginx配置訪問本地靜態(tài)資源,需要的朋友可以參考下2022-12-12
nginx實現(xiàn)指定url轉(zhuǎn)發(fā)詳解
這篇文章主要為大家詳細(xì)介紹了nginx實現(xiàn)指定url轉(zhuǎn)發(fā)的相關(guān)知識,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-11-11

