Win10使用nginx,注册到服务设置自启与后台运行,解决 Access is denied 问题
安装 nginx
下载
nginx 官网下载页面:https://nginx.org/en/download.html
直接选择当前最新 window 版本的或找到自己需要的版本下载即可
安装使用
下载完成后是有一个压缩包文件,直接解压到自己需要的目录下即可。是免安装的,解压即用
简单测试可以直接双击 nginx.exe 文件,以前台方式运行。或者 cmd 控制台用 start nginx 以后台方式运行
这两种运行方式都是基于当前账号的,若账号退出 进程也将关闭
所以若在服务器使用,还需要注册到服务中,使其可以一直存活并能在服务器异常重启后也启动。
下面介绍几种常用注册服务的方法
配置 nginx 开机自启
nginx 注册到服务
WinSW-x64
下载
下载地址:https://github.com/winsw/winsw/releases
建议前往 github 仓库下载,避免在其他地方下载到含有恶意脚本的版本
找到最新稳定版本,然后选择自己对应的操作系统的文件下载即可
配置
它的使用原理就是winsw.exe本身注册为windows服务,可以设置为自启动
当它启动时,配合exe同名的xml文件中的配置,执行设置的命令,达到自启动的效果
1、 我们将下载的 WinSW-x64 复制到 nginx.exe 同级目录下,并改名为:nginx-service
改名不是必须的,名称也可以随意,改名的目的是为了方便后期维护与在服务中查找使用
2、 然后在 nginx.exe 同级目录下创建文件:nginx-service.xml
注意该文件名需要与第一步设置的名称一致,不然注册服务的指令还需要指定 xml 文件的路径
xml 文件的内容如下:
<service><id>apm-nginx</id><name>apm-nginx</name><description>apm-nginx-自启动服务</description><logpath>D:\Program Files\nginx-1.25.2\server-logs\</logpath><logmode>roll</logmode><depend></depend><executable>D:\Program Files\nginx-1.25.2\nginx.exe</executable><stopexecutable>D:\Program Files\nginx-1.25.2\nginx.exe -s stop</stopexecutable>
</service>
文件节点的详细介绍:https://github.com/winsw/winsw/blob/v3/docs/xml-config-file.md
常用节点介绍:
- id:指定 Windows 在内部用于标识服务的 ID。这在系统中安装的所有服务中必须是唯一的
- name:服务的短显示名称,也需要是唯一的。不能太长
- description:描述信息
- logpath:WinSW 驱动 nginx 时产生的错误日志
- logmode:日志模式
- executable:可执行文件路径,需要驱动的 nginx 的路径
- stopexecutable:停止 nginx 的指令
使用
使用管理员权限运行 cmd 窗口,然后进入到 nginx-service 所在目录
或直接在路径上输入 cmd,然后运行下面的指令,之后按照提示授权执行即可
运行指令:
nginx-service.exe install
然后我们可以来到任务管理器中查看服务启动情况与设置服务的启动配置
服务的配置 这里不做赘述
然后我们来到详细信息中,可以发现 nginx 是与我们刚刚配置的nginx-service 一起启动的
停止 apm-nginx 服务后,下面三个进程是一起停止的
WinSw 常用指令
nginx-service.exe 为重命名后的 WinSW 名称
nginx-service.exe installl 安装服务
nginx-service.exe start 启动服务
nginx-service.exe stop 停止服务
nginx-service.exe restart 重启服务
nginx-service.exe uninstall 删除服务
nginx-service.exe status 查看状态
NSSM
下载
官网下载链接:https://nssm.cc/download
直接下载稳定版
下载后解压的目录结构:
安装
进入到对应系统的目录下
输入指令 如下指令,唤起 nssm 面板
nssm install
选择 exe 文件路径和设置服务名称后点击 install 即可
使用
使用和 WinSW 一样,普通管理服务一样
nssm 常用指令
nssm install servername //创建servername服务
nssm start servername //启动服务
nssm stop servername //暂停服务
nssm restart servername //重新启动服务
nssm remove servername //删除创建的servername服务
添加到系统开机计划中
在搜索栏中查找到 任务计划程序 展开 Microsoft》Windows
添加基本任务
设置启动时运行,操作为 启动程序
选择到 nginx.exe 执行文件
需要注意的是 起始于是必须要填的,填写的值是 nginx 所在的文件路径,如:D:\Program Files\nginx-1.25.2
可以在前面 nssm 配置中看到这种的设置
创建完成后可以直接点击 运行 启动,或者重启计算机启动
为了能使 nginx 可以在无用户时也能运行,还需要做一下设置
如果是通过 创建任务 的方式创建的任务,是可以在创建时就设置的
一些问题
配置文件无法重载(Access is denied)
nginx: [error] OpenEvent(“Global\ngx_reload_24248”) failed (5: Access is denied)
问题分析:
- 因为 Windows 账号运行隔离机制,我们没法直接关闭其他用户启动的程序,但是可以通过 pid 杀死进程。
- 因为 nginx 重新加载配置服务不停止的实现是通过一个住进程控制的,当 reload 时 nginx 会创建一个新的进程然后将后续的流量都转向到新的进程,当就进程中的流量都处理完成后会关闭旧的进程。使得 nginx 可以完成重新加载配置而不需要重启服务。
- 该问题就是因为以上关闭 nginx 旧进程时产生的错误。
解决方案
对于 nssm、windsw 托管 windows 服务的方式
该方式可以使用系统的 administrator 账号做服务的启动账号
administrator 账号默认是不启用的且密码不知
可以通过其他教程去启用 administrator 并修改默认账号。这里不赘述
一些还可以用 PSEXEC 程序做控制重启,一般不推荐在服务器上使用该工具
C:\Soft\PSTools\PSEXEC -s D:\Program Files\nginx-1.25.2\nginx.exe -p c:\nginx -s reload
对于使用任务计划程序的方式
使用该方式启动的也会有相同的问题,但是我们可以利用任务执行账号去规避该种错误
我们在 nginx.exe 同级下创建一个指令文件用于
reload.bat:
nginx -s reload
然后创建两个任务
创建任务基本不变
apm-nginx:
然后创建一个 apm-nginx-reload 用于重新加载配置文件的
触发器设置为启动一次就好,我们不需要它开机启动 只需要手动执行。或者设置一些事件变化去启动 但是这样就复杂了
操作 我们就用它去执行刚刚创建的 bat 文件即可
然后就 OK 了,在需要重载配置文件时 我们手动运行 apm-nginx-reload 这个计划任务即可
主要就是两个任务的执行账号需要一样,一般采用 system 或 network 账号即可
相关文章:

Win10使用nginx,注册到服务设置自启与后台运行,解决 Access is denied 问题
安装 nginx 下载 nginx 官网下载页面:https://nginx.org/en/download.html直接选择当前最新 window 版本的或找到自己需要的版本下载即可 安装使用 下载完成后是有一个压缩包文件,直接解压到自己需要的目录下即可。是免安装的,解压即用简…...

短视频矩阵系统源头开发
一、智能剪辑、矩阵分发、无人直播、爆款文案于一体独立应用开发 抖去推----主要针对本地生活的----移动端(小程序软件系统,目前是全国源头独立开发),开发功能大拆解分享,功能大拆解: 7大模型剪辑法(数学阶乘&#x…...

《windows核心编程》第1章 错误处理
一、错误信息的获取 1.1 C库错误信息 1、获取错误信息 #include <stdio.h> #include <stdlib.h> #include <string.h>int main() {fopen("D:\\ASC", "r");printf("%s\n", strerror(errno));getchar();return 0; } 2、设置错…...

解剖—单链表相关OJ练习题
目录 一、移除链表元素 二、找出链表的中间节点 三、合并两个有序链表 四、反转链表 五、求链表中倒数第k个结点 六、链表分割 七、链表的回文结构 八、判断链表是否相交 九、判断链表中是否有环(一) 十、 判断链表中是否有环(二) 注:第六题和第七题牛…...

php对接飞书机器人
有同事接到对接飞书机器人任务,开发中遇到响应错误: {"code": 19021,"msg": "sign match fail or timestamp is not within one hour from current time" } 意思应该就是签名错误或者时间戳不在有效范围内等,…...

中间件安全-CVE复现IISApacheTomcatNginx漏洞复现
目录 中间件安全&CVE复现&IIS&Apache&Tomcat&Nginx漏洞复现中间件-IIS安全问题中间件-Nginx安全问题漏洞复现Nginx 解析漏洞复现Nginx 文件名逻辑漏洞 中间件-Apache-RCE&目录遍历&文件解析等安全问题漏洞复现漏洞复现CVE_2021_42013 RCE代码执行&…...
@ResponseBodyAdvice @RequestBodyAdivce失效
背景 最近项目要有向外部提供服务的能力,但是考虑到数据安全问题,要对接口进行加解密;实现加解密的方案有很多,比如过滤器、拦截器、继承RequestResponseBodyMethodProcessor什么的,不过我最近正在了解ResponseBodyAd…...

【c#】Quartz开源任务调度框架学习及练习Demo
Quartz开源任务调度框架学习及练习Demo 1、定义、作用 2、原理 3、使用步骤 4、使用场景 5、Demo代码参考示例 6、注意事项 7、一些Trigger属性说明 1、定义、作用 Quartz是一个开源的任务调度框架,作用是支持开发人员可以定时处理业务,比如定时…...

spring cloud Eureka集群模式搭建(IDEA中运行)
spring cloud Eureka集群模式搭建(IDEA中运行) 新建springboot 工程工程整体目录配置文件IDEA中部署以jar包形式启动总结 新建springboot 工程 新建一个springboot 工程,命名为:eureka_server。 其中pom.xml文件为: …...
数据迁移一致性测试探索与实践
背景 量级庞大的日志通过mysql不足以支撑业务需求,以前通过任务调度定时跑批从mysql同步到hive存储,这种方式时效性为T1,也就是说今天的日志,明天才能同步到hive,总而言之时效性不高。为了提高时效性,改为…...

---图的遍历和最小生成树
广度优先遍历 --- 针对的是顶点遍历 深度优先遍历 如果给的图不是连通图?以某个点为起点就没有遍历完成。那么怎么保证遍历完剩下的点呢?? 在标记数组当中找没有遍历过的点,在进行遍历 最小生成树 生成树:一个连通…...

中文编程工具开发语言编程案例:会员VIP管理系统软件实例
中文编程工具开发语言编程案例:会员VIP管理系统软件实例 中文编程工具开发语言编程案例:会员VIP管理系统软件实例。 软件功能: 1、系统设置:参数设定,账号及权限设置,系统初始化,卡类型设置&a…...
Hive用户中文使用手册系列(四)
Python Client 在github 上上可以使用 Python client 驱动程序。有关安装说明,请参阅设置 HiveServer2:Python Client 驱动程序。 Ruby Client 一个 Ruby client 驱动程序在https://github.com/forward3d/rbhive的 github 上可用。 与 SQuirrel SQL …...
高级深入--day37
手机App抓包爬虫 1. items.py class DouyuspiderItem(scrapy.Item):name scrapy.Field()# 存储照片的名字imagesUrls scrapy.Field()# 照片的url路径imagesPath scrapy.Field()# 照片保存在本地的路径2. spiders/douyu.py import scrapy import json from douyuSpider.it…...

Web自动化测试:测试用例断言!
运行测试用例时,需要判断用例是否执行成功,此时需要有一个我们期望的结果来进行验证。这里unittest中,如果一个case执行的过程中报错,或者我们判断结果不符合期望,就会判定此条用例执行失败,判断的条件主要…...

基于SSM的培训学校教学管理平台的设计与实现
末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:Vue 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目:是 目录…...

2019年亚太杯APMCM数学建模大赛A题基于图像分析的二氧化硅熔化表示模型求解全过程文档及程序
2019年亚太杯APMCM数学建模大赛 A题 基于图像分析的二氧化硅熔化表示模型 原题再现 铁尾矿的主要成分是二氧化硅,而二氧化硅是铁尾矿成分中最难熔化的部分。因此,铁尾矿的熔融行为可以用二氧化硅的熔融行为来表示。然而,高温熔池的温度超过…...

C++之继承<2>【详解】
C之继承<2>【详解】 1. 派生类的默认成员函数1.1 1. 构造成员函数1.2 拷贝复制1.3 构造函数和析构函数的执行顺序 2. 继承和友元3. 继承与静态成员 1. 派生类的默认成员函数 1.1 1. 构造成员函数 派生类的构造函数必须调用基类的构造函数初始化基类的那…...
解决Kafka新消费者组导致重复消费的问题
问题描述:在使用Kafka时,当我们向新的消费者组中添加消费者时,可能会遇到重复消费的问题。本文将介绍一些解决这个问题的方法,帮助开发者更好地处理Kafka中的消费者组和消费偏移量。 Kafka是一个强大的分布式消息队列系统…...
公允价值会计(fair-value accounting)
《公允价值会计》是2008年经济科学出版社出版图书。 公允价值会计又称市值会计,是指以市场价值或未来现金流量的现值作为资产和负债的主要计量属性的会计模式。随着现代交通和通讯技术的发展,在工业社会中相互分割的市场正在走向世界一体化,…...
【Java学习笔记】Arrays类
Arrays 类 1. 导入包:import java.util.Arrays 2. 常用方法一览表 方法描述Arrays.toString()返回数组的字符串形式Arrays.sort()排序(自然排序和定制排序)Arrays.binarySearch()通过二分搜索法进行查找(前提:数组是…...

YSYX学习记录(八)
C语言,练习0: 先创建一个文件夹,我用的是物理机: 安装build-essential 练习1: 我注释掉了 #include <stdio.h> 出现下面错误 在你的文本编辑器中打开ex1文件,随机修改或删除一部分,之后…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院查看报告小程序
一、开发环境准备 工具安装: 下载安装DevEco Studio 4.0(支持HarmonyOS 5)配置HarmonyOS SDK 5.0确保Node.js版本≥14 项目初始化: ohpm init harmony/hospital-report-app 二、核心功能模块实现 1. 报告列表…...

DIY|Mac 搭建 ESP-IDF 开发环境及编译小智 AI
前一阵子在百度 AI 开发者大会上,看到基于小智 AI DIY 玩具的演示,感觉有点意思,想着自己也来试试。 如果只是想烧录现成的固件,乐鑫官方除了提供了 Windows 版本的 Flash 下载工具 之外,还提供了基于网页版的 ESP LA…...

【OSG学习笔记】Day 16: 骨骼动画与蒙皮(osgAnimation)
骨骼动画基础 骨骼动画是 3D 计算机图形中常用的技术,它通过以下两个主要组件实现角色动画。 骨骼系统 (Skeleton):由层级结构的骨头组成,类似于人体骨骼蒙皮 (Mesh Skinning):将模型网格顶点绑定到骨骼上,使骨骼移动…...

html css js网页制作成品——HTML+CSS榴莲商城网页设计(4页)附源码
目录 一、👨🎓网站题目 二、✍️网站描述 三、📚网站介绍 四、🌐网站效果 五、🪓 代码实现 🧱HTML 六、🥇 如何让学习不再盲目 七、🎁更多干货 一、👨…...
A2A JS SDK 完整教程:快速入门指南
目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库ÿ…...

【从零开始学习JVM | 第四篇】类加载器和双亲委派机制(高频面试题)
前言: 双亲委派机制对于面试这块来说非常重要,在实际开发中也是经常遇见需要打破双亲委派的需求,今天我们一起来探索一下什么是双亲委派机制,在此之前我们先介绍一下类的加载器。 目录 编辑 前言: 类加载器 1. …...

9-Oracle 23 ai Vector Search 特性 知识准备
很多小伙伴是不是参加了 免费认证课程(限时至2025/5/15) Oracle AI Vector Search 1Z0-184-25考试,都顺利拿到certified了没。 各行各业的AI 大模型的到来,传统的数据库中的SQL还能不能打,结构化和非结构的话数据如何和…...
Python竞赛环境搭建全攻略
Python环境搭建竞赛技术文章大纲 竞赛背景与意义 竞赛的目的与价值Python在竞赛中的应用场景环境搭建对竞赛效率的影响 竞赛环境需求分析 常见竞赛类型(算法、数据分析、机器学习等)不同竞赛对Python版本及库的要求硬件与操作系统的兼容性问题 Pyth…...