研究计划:nginx 按日期做日志切割 && nginx 重写模式

一 计划任务 && sh脚本做日志切割

crontab -e 计划任务

*/1 * * * * sh /data/wwwlogs/runlog/runlog.sh

runlog.sh 脚本

 

#! /bin/bash
# 日志源文件位置
LOGPATH=/data/wwwlogs/test/error-test.log

# 存放位置
BASEPATH=/data/wwwlogs/runlog/$(date -d yesterday +%Y%m)
#echo $BASEPATH

# 创建这个文件目录,按年月创建
mkdir -p $BASEPATH

# 文件名
bak=$BASEPATH/$(date -d yesterday +%d%H%M).runlogtest.access.log
#echo $bak


# 剪切日志文件到 存放位置并且名字已经起好了
mv $LOGPATH $bak

# 用于修改文件或者目录的时间属性,包括存取时间和更改时间。若文件不存在,系统会建立一个新的文件。
touch $LOGPATH

# 重新打开日志文件
kill -USR1 `cat /usr/local/nginx/logs/nginx.pid`

 

 

二、rewrite重写
 

1 if (条件) {} 设定条件在进行重写
2 set 设置变量
3 return 返回状态码
4 break 跳出 rewrite 注意:如果重新不break 会一直循环的重定向,所以每一个重写都需要break
5 rewrite 重写
6 $remote_addr url地址 如 $remote_addr = 192.168.1.1
还有更多的变量
log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

7 last 使用了last 指令,rewrite 后会跳出location 作用域,重新开始再走一次刚刚的行为


语法格式
if (条件) {
重写模式
}

条件
1 = 相等
2 ~ 用正则来匹配(此处正则区分大小写)
   ~* 不区分大小写
3 -f -d -e -x
-f (判断请求的文件是否存在);
-d (请求的目录是否存在) ;
-e (文件或目录是否存在) ;
-x (文件是否可执行)。

./fastcgi.conf的各大参数

[root@VM-0-12-centos conf]# more ./fastcgi.conf
fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;#脚本文件请求的路径
fastcgi_param  QUERY_STRING       $query_string; #请求的参数;如?app=123
fastcgi_param  REQUEST_METHOD     $request_method; #请求的动作(GET,POST)
fastcgi_param  CONTENT_TYPE       $content_type; #请求头中的Content-Type字段
fastcgi_param  CONTENT_LENGTH     $content_length; #请求头中的Content-length字段。
fastcgi_param  SCRIPT_NAME        $fastcgi_script_name; #脚本名称
fastcgi_param  REQUEST_URI        $request_uri; #请求的地址不带参数
fastcgi_param  DOCUMENT_URI       $document_uri; #与$uri相同。
fastcgi_param  DOCUMENT_ROOT      $document_root; #网站的根目录。在server配置中root指令中指定的值
fastcgi_param  SERVER_PROTOCOL    $server_protocol; #请求使用的协议,通常是HTTP/1.0或HTTP/1.1。
fastcgi_param  GATEWAY_INTERFACE  CGI/1.1;#cgi 版本
fastcgi_param  SERVER_SOFTWARE    nginx/$nginx_version;#nginx 版本号,可修改、隐藏
fastcgi_param  REMOTE_ADDR        $remote_addr; #客户端IP
fastcgi_param  REMOTE_PORT        $remote_port; #客户端端口
fastcgi_param  SERVER_ADDR        $server_addr; #服务器IP地址
fastcgi_param  SERVER_PORT        $server_port; #服务器端口
fastcgi_param  SERVER_NAME        $server_name; #服务器名,域名在server配置中指定的server_name
fastcgi_param  PATH_INFO         $path_info;#可自定义变量

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值