nginx 在windows中的日志切割

@echo off
taskkill /F /IM nginx.exe > nul
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%
echo %y%-%m%-%d%

rem 设置 Nginx 位于的盘符
set NGINX_DRIVER=D:
rem 设置 Nginx 的主目录
set NGINX_PATH=%NGINX_DRIVER%\000_nginx-1.12.1
rem 设置 Nginx 的日志目录
set LOG_PATH=%NGINX_PATH%\logs
rem 移动文件
move %LOG_PATH%\access.log %LOG_PATH%\access_%y%-%m%-%d%.log
move %LOG_PATH%\error.log %LOG_PATH%\error_%y%-%m%-%d%.log
rem 切换到 Nginx 所在的盘符
%NGINX_DRIVER%
rem 进入 Nginx 的主目录
cd %NGINX_PATH%
rem 向 nginx 发送 reopen 信号以重新打开日志文件,功能与 Linux 平台中的 kill -USR1 一致
start nginx
echo on

改成bat文件,再加入到window定时任务中

还有一种方法,不是切割文件的方式,而是在nginx配置文件中配置:

 

server {
    listen       8002;
    server_name a.xxx.com;
    if ( $time_iso8601  ~ '(\d{4})-(\d{2})-(\d{2})'){
        set $date $1$2$3;
}
      location /{
        proxy_pass http://192.168.0.125:8001;
        proxy_redirect default;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host 192.168.0.125;
        proxy_set_header X-Real-IP $http_x_real_ip;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        add_header 'Access-Control-Allow-Origin' '*';
        add_header 'Access-Control-Allow-Headers' '*';
        add_header 'Access-Control-Allow-Methods' 'GET,POST,OPTIONS,HEAD';
    
    access_log  logs/$date-access.log  main;
    }

}

我的nginx版本为1.19.2

posted @ 2018-11-20 18:09  八方鱼  阅读(2252)  评论(0)    收藏  举报