以前研究過負載均衡,最近正在專案上實施(從來沒做過小專案以上級別的東西,哈),nginx挺好,不過Windows有點為難,小流量和本地不追求效能,簡單易用是目標。
Nginx Windows上並沒有提供安裝為服務的方式,Windows Service多好用啊,開機自動執行。因此有了此工具,地址:https://github.com/xiangyuecn/Nginx-Windows-Service-Manager
copy之前說點什麼
一個入口,管理nginx的啟動、關閉、重啟、重新載入配置、擴充套件配置格式,夠簡單了麼,相對於我這個懶人是夠了。
以下內容copy自README
本工具用於Nginx Windows版的服務安裝和管理
xiangyuecn編寫,學習nginx之用,還沒弄懂怎麼配置nginx,先把安裝問題先解決了,不然伺服器一登出nginx也自動關掉了,首次使用於2014-02-20。
使用方法
-
把bin目錄內的5個檔案複製到nginx根目錄下(和nginx.exe同一目錄,參考圖1),nginx.txt為可選的配置模板檔案。
-
執行start.bat進行安裝/解除安裝Windows服務、管理服務執行/停止/重啟、更新配置、重新載入配置。
關於bin目錄5個檔案說明
start.bat
主指令碼,對nginx服務管理每次都執行這個指令碼即可完成輕鬆管理;如果需要調整服務名稱和配置檔名稱,更改此檔案即可,下面有專門介紹。
rolllog.vbs
配置模板檔案格式處理、日期替換更新指令碼
winsw1.9.exe
windows服務安裝器,用於把nginx安裝為系統服務,下載地址:http://central.maven.org/maven2/com/sun/winsw/winsw/1.9/ 配置介紹:https://github.com/kohsuke/winsw/blob/master/doc/xmlConfigFile.md 。
PsExec.exe
用system使用者身份執行start.bat;雙擊開啟start.bat時的身份預設時Admin,此時並不能管理system身份的nginx;start.bat會通過PsExec.exe跳轉一次執行,使用者身份就變成了system。
nginx.txt
配置模板檔案,支援任意格式重複內容只需定義一次,任何地方引用替換,大大簡化重複配置的編寫;此檔案不提供不影響使用。
關於start.bat
檔案內配置部分
可以調整:
- 對於nginx.txt模板檔案並非一定要放到根目錄,可以放到其他地方,通過修改nginxTxt定義,指向配置模板檔案。
- 配置檔名稱通過confPath指定,預設為conf/nginx.conf,如果需要改成別的檔名,修改即可。
- 服務名稱通過svs修改,預設為Nginx。
服務安裝執行後,winsw會產生3個log檔案(參考圖1),可以刪除,winsw1.9.xml檔案不可刪除,否則無法解除安裝和啟動。
關於nginx.txt
此檔案內容可以和nginx配置檔案內容完全一致,也可以使用擴充語法,省去那些不適合手動編輯的場景。
{y}、{m}、{d}、{h}、{M}、{s}
當前時間日期變數 比如log路徑可以動態生成:
logs/access_{y}{m}{d}.log //logs/access_20101229.log
複製程式碼
內容支援巨集定義和替換
定義:DEF(標識) 巨集名稱=巨集內容 (標識)END
,巨集名稱支援&、<、>、/、_、-、空格、換行、字母、數字、文字組合,巨集內容可以多行。
使用:在需要替換的地方寫上巨集名稱即可。
DEF <StaticExp>=\.(?:png|js|css|ttf|woff|eot|svg|xml|html|jpg|gif|swf)$ END
location ~*^/static/.*<StaticExp> {}
location ~*<StaticExp> {}
複製程式碼
DEF <Crt>=ssl_certificate xx.crt;
ssl_certificate_key xx.key; END
...
listen 80;
listen 443 ssl;
<Crt>
...
複製程式碼
圖例
檔案組成:
安裝服務:
服務管理:
已安裝服務:
system程式:
nginx程式: