Windows服务启动nginx,并按日期切割日志_验证OK
https://www.ucloud.cn/yun/39345.html
https://blog.csdn.net/lanwangxia/article/details/106903174
http://t.zoukankan.com/xiaoxiangpaou-p-15549776.html
---------------------------------------------------------------------------------
@rem 关闭脚本的每行输出
@echo off
@rem 获取当前时间
set ToDay=%DATE:~0,4%%DATE:~5,2%%DATE:~8,2%
@rem 关闭nginx
@rem net stop nginx
@rem 重命名日志文件
move F:\nginx-1.11.10\logs\access.log F:\nginx-1.11.10\logs\access_%ToDay%.log
move F:\nginx-1.11.10\logs\access.log F:\nginx-1.11.10\logs\error_%ToDay%.log
@rem 启动nginx
@rem net start nginx
@rem 重新打开nginx日志文件
F:\nginx-1.11.10\nginx.exe -s reopen
------------------------------------------------------------------------------------------------
二、编写脚本
@rem 关闭脚本的每行输出 @echo off @rem 获取当前时间 set ToDay=%DATE:~0,4%%DATE:~5,2%%DATE:~8,2% @rem 关闭nginx @rem net stop nginx @rem 重命名日志文件 move C:\nginx-1.11.3\logs\access.log C:\nginx-1.11.3\logs\%ToDay%_access.log @rem 启动nginx @rem net start nginx @rem 重新打开nginx日志文件 @rem C:\nginx-1.11.3\nginx.exe -s reopen @rem 重新启动nginx @rem C:\nginx-1.11.3\nginx.exe -s reload @rem 重新启动nginx C:\nginx-1.11.3\nginx.exe -p C:\nginx-1.11.3\ -s reload @rem 等待用户输入任意内容三、定时启动脚本
计算机--管理--系统工具--计划任务程序 中定制计划任务。
1、另行指定配置文件的启动方式
nginx -c tmpnginx.conf,这时,会读取-c参数后指定的nginx.conf配置文件来启动Nginx。
2、另行指定安装目录的启动方式
nginx -p /usr/local/nginx/ 使用-p参数指定Nginx的安装目录
3、另行指定全局配置项的启动方式
nignx -g "pid var/nginx/test.pid;" 可以通过-g参数临时指定一些全局配置项,以使新的配置项生效。
上面这行命令意味着会把pid文件写到var/nginx/test.pid中。
-g参数的约束条件是指定的配置项不能与默认路径下的nginx.conf中的配置项相冲突,否 则无法启动。
另一个约束条件是,以-g方式启动的Nginx服务执行其他命令行时,需要把-g参数也带 上,否则可能出现配置项不匹配的情形。
4、测试配置信息是否有错误
nginx -t
5、显示版本信息
nginx -v
6、显示编译阶段的参数
nginx -V
nginx的信号
7、快速地停止服务
nginx -s stop
使用-s stop可以强制停止Nginx服务。-s参数其实是告诉Nginx程序向正在运行的Nginx服 务发送信号量,Nginx程序通过nginx.pid文件中得到master进程的进程ID,再向运行中的 master进程发送TERM信号来快速地关闭Nginx服务。
实际上,如果通过kill命令直接向nginx master进程发送TERM或者INT信号,效果是一样 的。
然后直接通过kill命令来发送信号:
kill -s SIGTERM 10800 或 kill -s SIGINT 10800
8、优雅地停止服务
如果希望Nginx服务可以正常地处理完当前所有请求再停止服务,那么可以使用-s quit参 数来停止服务。
nginx -s quit
该命令与快速停止Nginx服务是有区别的。当快速停止服务时,worker进程与master进程 在收到信号后会立刻跳出循环,退出进程。而“优雅”地停止服务时,首先会关闭监听端口, 停止接收新的连接,然后把当前正在处理的连接全部处理完,最后再退出进程。
与快速停止服务相似,可以直接发送QUIT信号给master进程来停止服务,其效果与执 行-s quit命令是一样的。
kill -s SIGQUIT <nginx master pid>
如果希望“优雅”地停止某个worker进程,那么可以通过向该进程发送WINCH信号来停止 服务。
kill -s SIGWINCH <nginx worker pid>
9、使运行中的Nginx重读配置项并生效
使用-s reload参数可以使运行中的Nginx服务重新加载nginx.conf文件。
nginx -s reload
事实上,Nginx会先检查新的配置项是否有误,如果全部正确就以“优雅”的方式关闭, 再重新启动Nginx来实现这个目的。类似的,-s是发送信号,仍然可以用kill命令发送HUP信 号来达到相同的效果。
kill -s SIGHUP <nginx master pid>
10、日志文件回滚
使用-s reopen参数可以重新打开日志文件,这样可以先把当前日志文件改名或转移到其 他目录中进行备份,再重新打开时就会生成新的日志文件。这个功能使得日志文件不至于过 大。
nginx -s reopen
当然,这与使用kill命令发送USR1信号效果相同。
kill -s SIGUSR1 <nginx master pid>
11、平滑升级Nginx
当Nginx服务升级到新的版本时,必须要将旧的二进制文件Nginx替换掉,通常情况下这
是需要重启服务的,但Nginx支持不重启服务来完成新版本的平滑升级。 升级时包括以下步骤:
1)通知正在运行的旧版本Nginx准备升级。通过向master进程发送USR2信号可达到目的。
kill -s SIGUSR2 <nginx master pid>
这时,运行中的Nginx会将pid文件重命名,如将usrlocal/nginx/logs/nginx.pid重命名 为usrlocal/nginx/logs/nginx.pid.oldbin,这样新的Nginx才有可能启动成功。
2)启动新版本的Nginx,可以使用以上介绍过的任意一种启动方法。这时通过ps命令可 以发现新旧版本的Nginx在同时运行。
3)通过kill命令向旧版本的master进程发送SIGQUIT信号,以“优雅”的方式关闭旧版本的 Nginx。随后将只有新版本的Nginx服务运行,此时平滑升级完毕。
————————————————
版权声明:本文为CSDN博主「wiscourper_」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/lanwangxia/article/details/106903174