DBMNG数据库管理与应用

抓住自己最有兴趣的东西,由浅入深,循序渐进地学……
当前位置:首页 > 服务器配置 > nginx

windows环境下 nginx重新加载配置命令 nginx -s reload 加载失败的解决方案

运行过程中,有个节点部分服务出现故障,像将其下线修复,

使用nginx -t; nginx -s reload 重新加载配置

得到错误"nginx: [error] OpenEvent("Global\ngx_reload_1868") failed (5: Access is denied)"

原因是 nginx 作为windows 服务在运行,安全性问题,不能执行

使用 psexec 执行这段 "c:\pstools\psexec.exe" -s c:\nginx\nginx.exe -p c:\nginx -s reload


PS:
在windows环境下,使用双击nginx.exe文件的方式执行时,上述命令:nginx -s reload可以正确执行。


nginx启动时,会启动两个进程: 一个是Master进程和worker进程。


1)改变了nginx配置之后,HUP signal的信号需要发送给主进程。

2)主进程首先会检测新配置的语法有效性。

3)尝试应用新的配置 

1.打开日志文件,并且新分配一个socket来监听。

2.如果1失败,则回滚改变,还是会使用原有的配置。

3.如果1成功,则使用新的配置,新建一个线程。新建成功后发送一个关闭消息给旧的进程。要求旧线程优雅的关闭。

4.旧的线程 受到信号后会继续服务,当所有请求的客户端被服务后,旧线程关闭。

本站文章内容,部分来自于互联网,若侵犯了您的权益,请致邮件chuanghui423#sohu.com(请将#换为@)联系,我们会尽快核实后删除。
Copyright © 2006-2023 DBMNG.COM All Rights Reserved. Powered by DEVSOARTECH            豫ICP备11002312号-2

豫公网安备 41010502002439号