nginx/Windows-1.9.0的日志分割

本文介绍了一个用于Nginx服务器的日志轮转批处理脚本,该脚本通过Windows批处理命令实现对Nginx日志文件的自动归档和清理,确保日志文件不会无限增长,同时保持对历史数据的访问。

@echo off
rem @echo off 
rem 取1天之前的日期
echo wscript.echo dateadd("d",-1,date) >%tmp%\tmp.vbs 
for /f "tokens=1,2,3* delims=/" %%i in ('cscript /nologo %tmp%\tmp.vbs') do set y=%%i
for /f "tokens=1,2,3* delims=/" %%i in ('cscript /nologo %tmp%\tmp.vbs') do set m=%%j
for /f "tokens=1,2,3* delims=/" %%i in ('cscript /nologo %tmp%\tmp.vbs') do set d=%%k
if %m% LSS 9 set m=0%m%
if %d% LSS 9 set d=0%d%
rem echo %y%-%m%-%d%

rem 设置 Nginx 位于的盘符
set NGINX_DRIVER=E:

rem 设置 Nginx 的主目录
set NGINX_PATH=%NGINX_DRIVER%\hyc\Program Files\nginx-1.9.0

rem 设置 Nginx 的日志目录
set LOG_PATH=%NGINX_PATH%\logs

rem 切换到 Nginx 所在的盘符
%NGINX_DRIVER%
cd %LOG_PATH%
if not exist %y%-%m%-%d% (
mkdir %y%-%m%-%d%
)

rem 移动文件
move access.log %y%-%m%-%d%
move error.log %y%-%m%-%d%

rem 进入 Nginx 的主目录
cd %NGINX_PATH%
rem 向 nginx 发送 reopen 信号以重新打开日志文件,功能与 Linux 平台中的 kill -USR1 一致
nginx -s reopen
echo on
pause

Windows 上运行包含多个卷映射和配置的 Docker Nginx 容器,可以通过编写一个批处理脚本(`.bat` 文件)或 PowerShell 脚本来实现。该脚本将负责挂载日志、HTML 文件、Nginx 配置文件以及 SSL 证书目录,并启动容器。 ### 编写 Docker 运行脚本 以下是一个使用 PowerShell 编写的示例脚本,用于启动带有多个卷映射的 Nginx 容器: ```powershell docker run -d ` --name my-nginx ` -p 80:80 ` -p 443:443 ` -v C:/nginx/logs:/var/log/nginx ` -v C:/nginx/html:/usr/share/nginx/html ` -v C:/nginx/conf/nginx.conf:/etc/nginx/nginx.conf ` -v C:/nginx/conf.d:/etc/nginx/conf.d ` -v C:/nginx/ssl:/etc/nginx/ssl ` nginx:latest ``` #### 参数说明: - `-d`:后台运行容器。 - `--name my-nginx`:为容器指定一个名称。 - `-p 80:80` 和 `-p 443:443`:将宿主机的 80 和 443 端口映射到容器的相应端口[^1]。 - `-v`:用于挂载卷,分别将本地的日志、HTML 文件、主配置文件、子配置目录和 SSL 证书目录挂载到容器内的对应路径。 ### 目录结构建议 确保宿主机上的目录结构如下: ``` C:\nginx\ ├── logs\ # 存放 Nginx 日志 ├── html\ # 存放静态 HTML 文件 ├── conf\ # 存放 Nginx 主配置文件 │ └── nginx.conf ├── conf.d\ # 存放站点配置文件(如 default.conf) └── ssl\ # 存放 SSL 证书文件(如 server.crt 和 server.key) ``` ### 启动脚本执行 将上述 PowerShell 脚本保存为 `start-nginx.ps1` 文件,并在 PowerShell 中运行: ```powershell .\start-nginx.ps1 ``` 如果希望使用 `.bat` 批处理文件,可以将命令写入 `.bat` 文件中,但需要注意换行符的处理方式同: ```bat @echo off docker run -d ^ --name my-nginx ^ -p 80:80 ^ -p 443:443 ^ -v C:/nginx/logs:/var/log/nginx ^ -v C:/nginx/html:/usr/share/nginx/html ^ -v C:/nginx/conf/nginx.conf:/etc/nginx/nginx.conf ^ -v C:/nginx/conf.d:/etc/nginx/conf.d ^ -v C:/nginx/ssl:/etc/nginx/ssl ^ nginx:latest ``` ### 验证容器运行状态 运行完成后,可以通过以下命令检查容器是否正常启动: ```powershell docker ps -a ``` 查看容器日志以确认是否有错误: ```powershell docker logs my-nginx ``` ### HTTPS 配置注意事项 如果需要启用 HTTPS 支持,确保在 `/nginx/conf.d/default.conf` 中正确配置了 SSL 模块,例如: ```nginx server { listen 443 ssl; server_name example.com; ssl_certificate /etc/nginx/ssl/server.crt; ssl_certificate_key /etc/nginx/ssl/server.key; location / { root /usr/share/nginx/html; index index.html; } } ``` 以上配置将启用 HTTPS 并指向容器内的 SSL 证书路径[^4]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值