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

