首先也是重要的一個步驟,在Windows環境下如何安裝Ngnix服務呢?
前往http://nginx.org/en/download.html 下載合適的版本, 當然推薦的使用MainLine版本,下載好之后,解壓后雙擊Ngnix.exe 即可運行了(默認為80端口),若你已經在Windows服務器上部署了IIS,一定要記得修改默認端口,否則會有沖突。
如一切正常的話,訪問本地的地址+端口號你會看到這樣的界面:

此時并不能認為萬事大吉,由于Windows服務器環境下,僅僅以進程的方式去Run一個服務,首先會被認為這種方式是不Stable的,其次,如果進程被回收或崩潰掉,難以去找到相關的日志和錯誤信息,為調試帶來麻煩,所以我們傾向于將進程包裝為Windows服務,這樣會擁有更好的健壯性。
但默認的Ngnix并不支持Windows服務(原因在引言中已經闡述,Ngnix for windows僅僅被認為是一個測試版本),我們只有退而求其次也找一些其他的方式來安裝Ngnix為Windows服務。
常見的方法有instsrv/servany、FireDaemon等方式,但是這些方法都有各自的問題,例如instsrv/servany會在服務重啟,停止/啟動時產生一個新的Ngnix.exe進程。FireDaemon在啟動后,默認會帶來一個次級進程,這些原因和背景已經在Defonds的博客中已經有詳細的說明了。
因此我們建議使用Windows Service Wrapper來安裝Ngnix服務,這是GitHub上的一個開源項目,他可以將任何exe,bat等文件安裝為windows服務,你也可以在GitHub上下載他的源碼。
由于需要翻墻等原因,未必每個人都可以下載到二進制版本,這里提供一個便捷下載。(1.9版本)
https://www.jb51.net/softs/645594.html
好下載完成后,干掉你原來在跑的ngnix進程,將winsw.exe更改為任意名稱并創建一個xml文件作為配置,當然名稱要與exe名稱保持一致
配置代碼如下:
<service>
<id>nginx</id>
<name>nginx</name>
<description>nginx</description>
<executable>D:\Soft\Nginx\nginx-1.9.15\nginx-1.9.15\nginx.exe</executable>
<logpath>D:\Soft\Log\&;/logpath>
<logmode>roll</logmode>
<depend></depend>
<startargument>-p D:\Soft\Nginx\nginx-1.9.15\nginx-1.9.15</startargument>
<stopargument>-p D:\Soft\Nginx\nginx-1.9.15\nginx-1.9.15 -s stop</stopargument>
</service>
根據你的需要,修改executable,logpath,startargument,stopargument的配置。
接著cmd到你的winsw.exe目錄下,執行winsw.exe install命令(卸載的話,請使用winsw.exe uninstall).
一切順利的情況下,請你會看到你的Ngnix服務出現在服務列表中,此時啟動服務,可以看到上圖的歡迎信息了,這時候才可以認為你的Ngnix安裝成功了,接下來可以去使用它了。