实际上,(尽管有大量的谷歌搜索),答案可以在文档页面中找到答案.
命令是:
nginx -s reopen
Run Code Online (Sandbox Code Playgroud)
但这似乎只能在从命令行运行nginx时起作用 - 目前是目前在Windows上运行nginx的唯一官方方式.
我的下一个挑战是弄清楚如何在运行nginx作为Windows服务时如此工作,如下所述:Nginx Windows服务.
要在Windows中旋转nginx日志,请创建如下所示的批处理文件:
For /f "tokens=2-4 delims=/ " %%a in ('date /t') do (set YMD=%%c-%%a-%%b)
move C:\path\to\nginx\logs\Access.log C:\path\to\nginx\logs\Access_%YMD%.log
move C:\path\to\nginx\logs\Error.log C:\path\to\nginx\logs\Error_%YMD%.log
call C:\path\to\nginx\nginx -p C:\path\to\nginx -s reopen
Run Code Online (Sandbox Code Playgroud)
第一行只是创建一个时间戳(杰伊的功劳)
然后在Windows中创建计划任务以运行该批处理文件,以便您经常要旋转日志.
如果nginx作为服务运行(例如通过此处描述的Windows Service Wrapper ),则不能直接调用nginx命令nginx -s reopen.相反,您必须以运行服务的用户身份运行命令.
为此,请创建一个名为nginx(例如)的新用户,并将服务和计划任务配置为以该用户身份运行.您还必须确保您的用户具有" 作为批处理作业登录 "权限.
如果要在命令行上测试旋转脚本而不必使用可以使用的计划任务
runas /user:nginx "C:\path\to\rotateLogs.bat"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8173 次 |
| 最近记录: |