Windows下將nginx安裝為服務運行

來源:互聯網
上載者:User

標籤:改變   mode   修改註冊表   安裝   快速   啟動   最新版   alt   微軟雅黑   

       今天看到nginx這個小伺服器軟體正式版更新到了1.4.2,想玩下它。這個伺服器軟體雖小,但功能強大,是開源軟體,有著良好的效能,被很多個人、企業,甚至大型企業所使用!

       由於是在Windows下,所以只能雙擊運行,然後通過以下命令來管理:

 

 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 Service Wrapper,這個軟體也是開源的,而且已經很久沒有更新了,我找到的最後版本是1.9,如果你看到有新版本,記得通知我哦!使用這個軟體可以將程式安裝成服務運行。

       下面我們就來具體操作:

       1、下載nginx的最新版本1.10.2,解壓縮到D:\nginx,下載Windows Service Wrapper軟體1.9,拷貝到D:\nginx目錄,並重新命名為winsw。(點擊上面串連下載軟體)

       2、開啟記事本,複製以下內容到裡面,另存新檔: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>

 

         如果你的目錄和我的不一樣,就自行修改吧!

       3、以管理員身份運行cmd,輸入:D:\nginx\winsw.exe install,斷行符號,提示安裝服務完成。

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

       4、驗證nginx是否工作正常:在瀏覽器中輸入 localhost或者 127.0.0.1,看到如所示,說明nginx工作正常,恭喜了! 註:這種方法在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服務管理員停止Nginix服務後,訪問瀏覽器仍然能看到網站。查看進程,你會發現,Nginx的其中一個進程還在運行!nginx進程(根據nginx.conf的配置worker_processes 1;),Fork出來的進程顯然沒有被停止,結果就是nginx永遠關不掉。因此徹底關閉nginx請使用taskkill命令!       那麼我們只好做個stop_nginx指令碼來處理nginx停止的所有操作:
@echo offecho stopping nginx service...net stop nginxecho Kill nginx process...taskkill /F /IM nginx.exe>nul
  PS:2016.10.26日更新軟體下載連結和版本!

Windows下將nginx安裝為服務運行

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.