Win10使用nginx,注册到服务设置自启与后台运行,解决 Access is denied 问题

news2024/12/22 19:17:02

安装 nginx

下载

nginx 官网下载页面:https://nginx.org/en/download.html
直接选择当前最新 window 版本的或找到自己需要的版本下载即可
image.png

安装使用

下载完成后是有一个压缩包文件,直接解压到自己需要的目录下即可。是免安装的,解压即用
image.png
简单测试可以直接双击 nginx.exe 文件,以前台方式运行。或者 cmd 控制台用 start nginx 以后台方式运行

这两种运行方式都是基于当前账号的,若账号退出 进程也将关闭
所以若在服务器使用,还需要注册到服务中,使其可以一直存活并能在服务器异常重启后也启动。

下面介绍几种常用注册服务的方法

配置 nginx 开机自启

nginx 注册到服务

WinSW-x64
下载

下载地址:https://github.com/winsw/winsw/releases
建议前往 github 仓库下载,避免在其他地方下载到含有恶意脚本的版本
找到最新稳定版本,然后选择自己对应的操作系统的文件下载即可
image.png

配置

它的使用原理就是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,然后运行下面的指令,之后按照提示授权执行即可
image.pngimage.png
运行指令:

nginx-service.exe install

然后我们可以来到任务管理器中查看服务启动情况与设置服务的启动配置
image.png
服务的配置 这里不做赘述
然后我们来到详细信息中,可以发现 nginx 是与我们刚刚配置的nginx-service 一起启动的
停止 apm-nginx 服务后,下面三个进程是一起停止的
image.png

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
直接下载稳定版
image.png
下载后解压的目录结构:
image.png

安装

进入到对应系统的目录下
输入指令 如下指令,唤起 nssm 面板

nssm install

image.png
选择 exe 文件路径和设置服务名称后点击 install 即可
image.png

使用

使用和 WinSW 一样,普通管理服务一样
image.png

nssm 常用指令
nssm install servername //创建servername服务
nssm start servername //启动服务
nssm stop servername //暂停服务
nssm restart servername //重新启动服务
nssm remove servername //删除创建的servername服务

添加到系统开机计划中

在搜索栏中查找到 任务计划程序 展开 Microsoft》Windows
image.png
添加基本任务
image.png
设置启动时运行,操作为 启动程序
image.png
选择到 nginx.exe 执行文件
需要注意的是 起始于是必须要填的,填写的值是 nginx 所在的文件路径,如:D:\Program Files\nginx-1.25.2
可以在前面 nssm 配置中看到这种的设置
image.png
创建完成后可以直接点击 运行 启动,或者重启计算机启动
image.png
为了能使 nginx 可以在无用户时也能运行,还需要做一下设置
如果是通过 创建任务 的方式创建的任务,是可以在创建时就设置的
image.png

一些问题

配置文件无法重载(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 账号做服务的启动账号
image.png
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

然后创建两个任务
image.png
创建任务基本不变
apm-nginx:
image.png
然后创建一个 apm-nginx-reload 用于重新加载配置文件的
image.png
触发器设置为启动一次就好,我们不需要它开机启动 只需要手动执行。或者设置一些事件变化去启动 但是这样就复杂了
image.png
操作 我们就用它去执行刚刚创建的 bat 文件即可
image.png
然后就 OK 了,在需要重载配置文件时 我们手动运行 apm-nginx-reload 这个计划任务即可
主要就是两个任务的执行账号需要一样,一般采用 system 或 network 账号即可

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1113850.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2023年中国功能型内窥镜市场发展趋势分析:市场渗透潜力空间广阔[图]

4K内窥镜系统对图像算法存在更高的要求。仅采用软件方式处理图像难以符合4K系统对算力的高要求。其次&#xff0c;针对内窥镜图像的亮暗区域不均匀、饱和度低、细节纹理及组织结构需突出的特点&#xff0c;在选择合适的图像增强算法上难度较大。 功能型内窥镜行业壁垒分析 资料…

Vue动态class

注意在自定义组件上绑定class会添加到该组件的根元素上面 1.对象语法 传入class对象v-bind:class 指令也可以与普通的 class attribute 共存可以动态修改class的值可以绑定一个计算数据来实现 1.传入class对象 <script src"./vue.js"></script><di…

强大的虚拟机软件 VMware Fusion Pro 13中文最新 for mac

VMware Fusion Pro是一款虚拟化软件&#xff0c;它允许在Mac电脑上同时运行Windows和其他操作系统&#xff0c;而无需重启电脑&#xff0c;它采用了领先的虚拟化技术&#xff0c;能够保证在Mac电脑在同时运行多个操作系统时表现出极高的效率和稳定性。 VMware Fusion Pro具有以…

@Binds methods must be abstract 报错指南

bindings方法必须是抽象的 Binds使用错误

页面查询多项数据组合的线程池设计 | 京东云技术团队

背景 我们应对并发场景时一般会采用下面方式去预估线程池的线程数量&#xff0c;比如QPS需求是1000&#xff0c;平均每个任务需要执行的时间是t秒&#xff0c;那么我们需要的线程数是t * 1000。 但是在一些情况下&#xff0c;这个t是不好估算的&#xff0c;即便是估算出来了&…

数据仓库分层

原因 用空间换时间&#xff0c;通过大量的预处理来提升应用系统的用户体验&#xff08;效率&#xff09;&#xff0c;因此数据仓库会存在大量冗余的数据。如果不分层的话&#xff0c;如果源业务系统的业务规则发生变化将会影响整个数据清洗过程&#xff0c;工作量巨大。通过数…

C# Onnx Yolov8 Detect 烟雾检测

效果 项目 代码 using Microsoft.ML.OnnxRuntime; using Microsoft.ML.OnnxRuntime.Tensors; using OpenCvSharp; using System; using System.Collections.Generic; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms;namespace Onnx…

MAX插件CG Magic怎么云渲染?操作方法已整起!

小编这里会收到不少网友的反馈是关于3ds max插件CG Magic怎么云渲染&#xff1f; 3d max的这款插件CG MAGIC的出现就是为了设计师使用过程中&#xff0c;可以省时又省心的完成工作。 同时&#xff0c;大家要了键下&#xff0c;现阶段CG MAGIC有18个板块&#xff0c;118个模块…

安装Git和git命令使用

文章目录 安装Git创建版本库版本回退工作区和暂存区管理修改撤销修改 安装Git 在Windows上安装Git 在Windows上使用Git&#xff0c;可以从Git官网直接下载安装程序&#xff0c;然后按默认选项安装即可。 安装完成后&#xff0c;在开始菜单里找到“Git”->“Git Bash”&…

三星正在开发HBM4,预计2025年推出

近年来&#xff0c;人工智能&#xff08;AI&#xff09;、高性能计算&#xff08;HPC&#xff09;和PC一直在推动高性能DRAM产品的研发&#xff0c;市场对HBM类DRAM的需求也在迅速增长&#xff0c;各大厂商也加大了这方面的投入。目前HBM市场主要由三星、SK海力士和美光三家存储…

海尔智家亮相广交会:用确定的用户思维,战胜不确定的市场

全球家电市场的不确定性越来越强。 尽管家电行业复苏趋势不改&#xff0c;但是新的问题已显现。据中国机电产品进出口商会数据&#xff0c;今年1-8月&#xff0c;中国白色家电出口额同比下降2%。同时&#xff0c;据媒体报道&#xff0c;在近日举办的中国进出口贸易交易会&…

【红日靶场】vulnstack5-完整渗透过程

系列文章目录 【红日靶场】vulnstack1-完整渗透过程 【红日靶场】vulnstack2-完整渗透过程 【红日靶场】vulnstack3-完整渗透过程 【红日靶场】vulnstack4-完整渗透过程 文章目录 系列文章目录描述虚拟机密码红队思路 一、环境初始化二、开始渗透外网打点上线cs权限提升域信息…

重置手机网络虽然麻烦,但效果杠杠的!如何重置安卓手机的网络

在这篇文章中&#xff0c;我们将探讨你可能需要在Android设备上重置网络设置的原因&#xff0c;并将提供如何重置的分步说明。无论你是遇到连接问题&#xff0c;还是只是想重新开始网络设置&#xff0c;本指南都将引导你完成重置过程。 重置网络设置的原因 在Android设备上重置…

电流监测芯片SGM8199A2应用电路设计

SGM8199是一系列具有电压输出功能的双向电流监测芯片&#xff0c;用于监测共模电压范围内分流电阻上的压降&#xff0c;而不受电源电压的影响。该器件具有-0.1V至26V的宽共模电压范围输入。低偏移使得在监测电流时允许分流器上的满量程最大压降为10mV。SGM8199系列提供三种固定…

高速DSP系统设计参考指南(五)印制电路板或PCB布局

&#xff08;五&#xff09;印制电路板或PCB布局 所有电路设计完成后&#xff0c;下一步是电路板布局。这是开发过程中非常关键的一步&#xff0c;因为滤波电路的有效性取决于元件相对于 DSP引脚的放置位置。此外&#xff0c;电路板布局对噪声、串扰和传输线效应有很大影响&…

杭州怎么开股票账户佣金手续费最低?找哪家证券公司?

杭州怎么开股票账户佣金手续费最低&#xff1f;找哪家证券公司&#xff1f; 股票开户是指一个人或实体在证券公司或证券交易所注册并开立证券账户&#xff0c;以便购买和出售股票。股票开户需要提供身份证明文件、联系方式、银行账号等信息&#xff0c;并接受有关监管机构的审…

400 The plain HTTP request was sent to HTTPS port

接口请求发生问题&#xff1a; 解决方法&#xff1a; Nginx HTTP服务器的报错 “400 Bad Request: The plain HTTP request was sent to HTTPS port”&#xff0c;本文将讲解如何解决这个问题。简单从报错的字面意思上来看&#xff0c;是因为HTTP请求被发送到HTTPS端口&#x…

2022年京东双11美妆护肤品类数据回顾

在美妆护肤市场中&#xff0c;回望去年双11&#xff0c;虽然期间品牌在市场中的销售表现有升有降&#xff0c;但根据京东官方发布的数据来看&#xff0c;不少美妆品牌仍在京东双11期间取得了亮眼成绩&#xff0c;其中&#xff0c;赫莲娜等952个品牌成交额同比增长超100%。 下面…

基于Django与深度学习的股票预测系统 计算机竞赛

文章目录 0 前言1 课题背景2 实现效果3 Django框架4 数据整理5 模型准备和训练6 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; **基于Django与深度学习的股票预测系统 ** 该项目较为新颖&#xff0c;适合作为竞赛课题方向&#xff…

食品添加剂:健康还是危险?——从肠道微生物角度分析

谷禾健康 就在前不久&#xff0c;世界卫生组织将阿斯巴甜列为可能致癌物&#xff0c;引发了人们不小的热议。阿斯巴甜作为人工甜味剂的一种&#xff0c;不提供任何卡路里&#xff0c;就可以提供蔗糖几百倍的甜度。 人工甜味剂几乎不提供热量&#xff0c;或只提供极少的热量&…