Nginx Windows版的服务安装和管理工具
以前研究过负载均衡,最近正在项目上实施(从来没做过小项目以上级别的东西,哈),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}、
当前时间日期变量
比如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进程:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· [AI/GPT/综述] AI Agent的设计模式综述