雖然使用命令行控制ngix很簡單,但是如果作為一個服務工作的話能更方便地啟動、停止或者設置依賴項。
這里使用開源項目Windows Service Wrapper 來實現。
github下載地址:https://github.com/kohsuke/winsw/releases
.netframework2.0 選擇 WinSW.NET2.exe
.netframework4.0 選擇WinSW.NET4.exe
這里選擇 WinSW.NET4.exe
第一步:
下載WinSW.NET4.exe,放至待包裝的exe文件夾中,這里就是nginx.exe所在的目錄,並修改名字為“nginxservice.exe”
在nginxservice.exe同目錄中新建一個同名的xml文件
修改xml文件內容,格式可參考下載列表里的xml范例
這里參考最簡單的sample-minimal.xml
修改為真實內容
安裝服務
d:\nginx\nginxservice.exe install
安裝完成后后在服務里查看到該服務 nginxservice,至此服務安裝完成
啟動該服務,然后在瀏覽器中輸入地址和原先以控制台指令執行結果運行一致 代表執行成功
卸載服務指令
nginxservice.exe uninstall 或者使用 sc delete 服務名稱
其它:
exe目錄下存在運行日志可供查看運行內容
常見問題:
1.刪除服務時出現“服務已被標記為刪除”
一般為卸載和刪除服務時服務正在運行或者windows服務管理器沒有關閉導致,刪除前養成關閉服務和服務管理器的習慣,然后重新安裝啟動即可。
2.服務啟動后自動關閉,無法正常運行
一般是配置文件配置錯誤,常見如端口沖突(比如IIS 和Nginx 使用了相同端口,則Nginx不能再使用該端口),這時只要消除端口沖突即可,具體錯誤可以查看錯誤日志。
更新:
經驗證該方法在server系統無法自動啟動和服務狀態顯示錯誤問題,推薦使用NSSM封裝nginx為windows服務使用,使用方法參照 使用nssm注冊 windows服務