雖然使用命令行控制ngix很簡單,可是若是做爲一個服務工做的話能更方便地啓動、中止或者設置依賴項。html
這裏使用開源項目Windows Service Wrapper 來實現。nginx
github下載地址:https://github.com/kohsuke/winsw/releasesgit
.netframework2.0 選擇 WinSW.NET2.exe github
.netframework4.0 選擇WinSW.NET4.exewindows
這裏選擇 WinSW.NET4.exe瀏覽器
第一步:bash
下載WinSW.NET4.exe,放至待包裝的exe文件夾中,這裏就是nginx.exe所在的目錄,並修更名字爲「nginxservice.exe」app
在nginxservice.exe同目錄中新建一個同名的xml文件post
修改xml文件內容,格式可參考下載列表裏的xml範例url
這裏參考最簡單的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服務