Nginx日志切割

检查Nginx logs目录权限

nginx日志切割,这里使用的是默认安装的ngx_http_map_module插件

[root@shs-nginx01 nginx]# ls -l
total 36
drwx------.  2 nobody root 4096 Jul 15 13:50 client_body_temp
drwxr-xr-x.  4 root   root 4096 Jul 15 11:33 conf
drwx------.  2 nobody root 4096 Aug 28  2015 fastcgi_temp
drwxr-xr-x.  8 root   root 4096 Sep  7  2021 html
drwxr-xr-x.  2 nobody root 4096 Jul 15 12:18 logs
drwx------. 12 nobody root 4096 Sep  8  2015 proxy_temp
drwxr-xr-x.  2 root   root 4096 Nov 19  2019 sbin
drwx------.  2 nobody root 4096 Aug 28  2015 scgi_temp
drwx------.  2 nobody root 4096 Aug 28  2015 uwsgi_temp

与Nginx进程用户要一致

[root@shs-nginx01 nginx]# ps -ef|grep nginx
nobody    11353 123559  0 11:43 ?        00:00:05 nginx: worker process
nobody    11354 123559  0 11:43 ?        00:00:06 nginx: worker process

这里看到logs目录所属权限是"nobody"与Nginx进程用户的所属权限一致,这样才OK
如果不一致,则需要进行授权给Nginx进程用户,这里是"nobdy",所以授权给"nobdy",授权命令如下

chown -R nobody logs

修改nginx.conf配置文件,添加切割参数

vim /usr/local/nginx/conf/nginx.conf

在nginx.conf的http中添加如下参数:

map $time_iso8601 $logdate {
    default 'date-not-found';
    '~^(?\d{4}-\d{2}-\d{2})' $ymd;
}

然后在相应的日志输出定义处添加参数$logdate

access_log    logs/app-web-$logdate.log    main;

检测nginx.conf,及生效

nginx -t
nginx -s reload

去访问一下nginx地址,再去nginx logs目录下去看,会发现日志切割生效

引用 Reference

Kubernetes 1.25.4版本安装
kubeasz安装kubernetes1.25.5
CentOS8搭建nfs服务
k8s一键安装redis单机版
k8s一键安装mysql8单机版
Docker制作springboot运行应用镜像
k8s部署springboot应用
zookeeper集群安装
Nginx日志切割
Elasticsearch单机版本安装
Elasticsearch集群安装
springboot集成prometheus+grafana
安装Docker及学习
RabbitMQ集群安装

你可能感兴趣的:(nginx,nginx,运维)