Nginx安裝成Windows服務(wù)方法_Windows教程
Nginx 安裝成Windows 服務(wù)方法,具體方法如下
1. 下載nginx windows版本
http://www.nginx.org
2. 下載微軟的2個工具: instsrv.exe、srvany.exe
去微軟網(wǎng)站下載安裝Windows Server 2003 Resource Kit Tools(rktools.exe),它包括標(biāo)題提及的所有必要的工具,下載完安裝好。
3. 運行命令
在rktools安裝目錄下(一般在C:\Program Files\Windows Resource Kits\Tools目錄)可以發(fā)現(xiàn)這兩個程序.在運行下面命令之前,確保將srvany.exe復(fù)制到nginx的安裝(解壓)目錄下,然后運行:
instsrv Nginx D:\nginx\srvany.exe
這樣就安裝了一個名為Nginx的服務(wù)。也就是將srvany.exe注冊成一個服務(wù)Nginx。Net start Nginx時,肯定會運行srvany.exe。
4. 配置Nginx的運行參數(shù):目的是運行srvany.exe時,附帶運行D:\nginx\nginx.exe程序。
可以直接將配置導(dǎo)入到注冊表
Window register代碼
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NGINX\Parameters]
"Application"="D:\\nginx\\nginx.exe"
"AppParameters"=""
"AppDirectory"="D:\\nginx\\"
現(xiàn)在就可以通過控制面板->管理員工具->服務(wù)中找到該服務(wù),并啟動和停止了。
但是,當(dāng)停止Nginix服務(wù)后,訪問瀏覽器仍然能看到網(wǎng)站。查看進程,你會發(fā)現(xiàn),Nginx啟動了兩個nginx進程(根據(jù)nginx.conf的配置worker_processes 1;),F(xiàn)ork出來的進程顯然沒有被停止,結(jié)果就是nginx永遠(yuǎn)關(guān)不掉。因此徹底關(guān)閉nginx請使用taskkill命令:
taskkill /F /IM nginx.exe > nul
結(jié)果是寫一個stop_nginx腳本來處理nginx停止的所有操作
@echo off
echo Stopping nginx service...
net stop nginx
echo Kill nginx process...
taskkill /F /IM nginx.exe > nul
順便,如果想刪除服務(wù),使用命令:
sc delete Nginx
說到這,大家一定會重新思考:如果同樣寫一個start_nginx腳本,那么還有使用windows服務(wù)的必要嗎?腳本方式運行nginx除了有運行控制臺窗口,似乎沒有區(qū)別了。有好事者寫了一個RunHiddenConsole.exe,可以隱藏控制臺窗口。似乎完全不必考慮使用windows服務(wù)方法了。
峰回路轉(zhuǎn),別忘記我們的初衷,使用windows服務(wù)可以在用戶退出登陸時,仍然可以運行nginx進程 ,而腳本方式想如此運行就得頗費點周折,結(jié)論是windows服務(wù)仍然是有必要的,但僅用于啟動nginx,至于停止nginx請使用前述腳本。
- 相關(guān)鏈接:
- 教程說明:
Windows教程-Nginx安裝成Windows服務(wù)方法
。