Windows下將nginx安裝爲服務運行

今天看到nginx這個小服務器軟件正式版更新到了1.4.2,想玩下它。這個服務器軟件雖小,但功能強大,是開源軟件,有着良好的性能,被不少我的、企業,甚至大型企業所使用!nginx

       因爲是在Windows下,因此只能雙擊運行,而後經過如下命令來管理:web

 

 Nginx/Win32是運行在一個控制檯程序,而非windows服務方式的。服務器方式目前仍是開發嘗試中,Nginx/Win32可使用如下開關來管理它:
Nginx -s stop             快速關閉Nginx,可能不保存相關信息,並迅速終止web服務。(快速退出)
Nginx -s quit             平穩關閉Nginx,保存相關信息,有安排的結束web服務。(平滑退出)
Nginx -s reload        因改變了Nginx相關配置,須要從新加載配置而重載。(從新加載配置)
Nginx -s reopen       從新打開日誌文件。(從新加載日誌)

 

       若是能把它安裝成Windows服務運行,那就爽了!!在網上找了個Windows服務安裝工具:srvinstw。這個工具是能夠把nginx安裝成服務,但不能被正常啓動,沒法運行。只能做罷!windows

       通過一番查找之後,終於找到了解決辦法:瀏覽器

       這裏咱們須要用到一個軟件:Windows Service Wrapper,這個軟件也是開源的,並且已經好久沒有更新了,我找到的最後版本是1.9,若是你看到有新版本,記得通知我哦!Windows下將nginx安裝爲服務運行 - 飄風劍 - swordhack使用這個軟件能夠將程序安裝成服務運行。服務器

       下面咱們就來具體操做:app

       一、下載nginx的最新版本1.4.2,解壓縮到D:\nginx下載Windows Service Wrapper軟件1.9,拷貝到D:\nginx目錄,並重命名爲winsw。(點擊上面鏈接下載軟件)工具

       二、打開記事本,複製如下內容到裏面,另存爲:D:\nginx\winsw.xml性能

 

<?xml version="1.0" encoding="UTF-8" ?>
<service>
<id>nginx</id>
<name>nginx</name>
<description>nginx</description>
<executable>D:\nginx\nginx.exe</executable>
<logpath>D:\nginx\</logpath>
<logmode>roll</logmode>
<depend></depend>
<startargument>-p D:\nginx</startargument>
<stopargument>-p D:\nginx -s stop</stopargument>
</service>

 

         若是你的目錄和個人不同,就自行修改吧!網站

       三、以管理員身份運行cmd,輸入:D:\nginx\winsw.exe install,回車,提示安裝服務完成。ui

       此時,你的nginx能夠以Windows服務運行了,能夠打開服務管理器進行服務的啓動、中止、修改自動或手動運行等,更可使用Windows的cmd命令:net start/stop nginx來管理。是否是很方便呢?

         掃二維碼下載上面軟件啦,哈哈!!

Windows下將nginx安裝爲服務運行 - 飄風劍 - swordhack                        Windows下將nginx安裝爲服務運行 - 飄風劍 - swordhack
       四、驗證nginx是否工做正常:
在瀏覽器中輸入 localhost或者 127.0.0.1,看到以下圖所示,說明nginx工做正常,恭喜了!
Windows下將nginx安裝爲服務運行 - 飄風劍 - swordhack
 注:這種方法在win8上好像有問題,在從新啓動電腦之後,會是否是得不能隨系統啓動,緣由不詳!若是你知道,請告訴我,謝謝!
 
補充另一種方法:
       使用微軟本身的工具來將nginx安裝爲服務運行。 微軟的 Windows NT Resource Kit裏面有2個小工具,即:Instsrv.exe和Srvany.exe,Instsrv.exe能夠給系統安裝和刪除服務,Srvany.exe可讓程序以服務的方式運行。srvany.exe可用於將任何EXE程序做爲Windows服務運行。也就是說srvany只是其註冊程序的服務外殼,這個特性對於咱們來講很是實用,咱們能夠經過它讓咱們的程序以SYSTEM帳戶啓動,或者實現隨機器啓動而自啓動,也能夠隱藏沒必要要的窗口,好比說控制檯窗口等等。
       固然這個是命令行工具,並且還須要修改註冊表,比較麻煩,那麼咱們就用別人的一個UI小工具來實現。
       把文件解壓到nginx目錄裏,運行srvanyui.exe,點擊左上角綠色的加號,而後設置好,點肯定(以下圖),服務就建立好了!哈哈,簡單吧。
Windows下將nginx安裝爲服務運行 - 飄風劍 - swordhack
        可是,當使用windows服務管理器中止Nginix服務後,訪問瀏覽器仍然能看到網站。查看進程,你會發現,Nginx的其中一個進程還在運行!nginx進程(根據nginx.conf的配置worker_processes 1;),Fork出來的進程顯然沒有被中止,結果就是nginx永遠關不掉。所以完全關閉nginx請使用taskkill命令!
        那麼咱們只好作個stop_nginx腳原本處理nginx中止的全部操做:
@echo off
echo stopping nginx service...
net stop nginx
echo Kill nginx process...
taskkill /F /IM nginx.exe>nul
相關文章
相關標籤/搜索