Nginx访问日志,Nginx日志切割,静态文件不记录日志和过期时间

 Nginx访问日志:

vim /usr/local/nginx/conf/nginx.conf //搜索log_format    = 配置文件里面可以查找到日志格式

定义访问日志

定义日志是需要在虚拟主机里面去定义的,nginx里面如果修改了日志格式的名字那么在虚拟主机中定义日志文件需要引用nginx配置文件里面的名字。

vim /usr/local/nginx/conf/vhost/test.com.log   =定义虚拟主机日式文件

定义完以后 -t && -s reload   

[root@aming-01 vhost]# /usr/local/nginx/sbin/nginx -t      = 检测配置文件语法是否错误
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@aming-01 vhost]# /usr/local/nginx/sbin/nginx -s reload    = 重新加载配置文件

测试配置:状态码为200说明ok

cat /tmp/test.com.log  = 查看日志里面的信息

Nginx日志切割:

nginx日志切割需要使用到系统自带的工具,或者写一个切割的脚本

vim /usr/local/sbin/nginx_log_rotate.sh//写入如下内容        = 配置nginx需要的日志切割脚本

#! /bin/bash
## 假设nginx的日志存放路径为/data/logs/
d=`date -d "-1 day" +%Y%m%d`      = 定义时间(昨天的日期)
logdir="/data/logs"       =定义日志存放路径
nginx_pid="/usr/local/nginx/logs/nginx.pid"     
cd $logdir              =  进入到日志目录下
for log in `ls *.log`          = for循环匹配
do
    mv $log $log-$d     =   更改所有配置文件的名字
done
/bin/kill -HUP `cat $nginx_pid`

配置好切割脚本以后可以执行测试一下脚本   sh -x 加上脚本路径   -x =可以显示出脚本执行过程

[root@aming-01 vhost]# sh -x /usr/local/sbin/nginx_log_rotate.sh
++ date -d '-1 day' +%Y%m%d
+ d=20180425
+ logdir=/tmp/
+ nginx_pid=/usr/local/nginx/logs/nginx.pid
+ cd /tmp/
++ ls test.com.log
+ for log in '`ls *.log`'
+ mv test.com.log test.com.log-20180425
++ cat /usr/local/nginx/logs/nginx.pid
+ /bin/kill -HUP 1089

写完脚本以后还需要加上一个任务计划:

crontab -e      = 任务计划

0 0 * * * /bin/bash /usr/local/sbin/nginx_log_rotate.sh    = 表示每天凌晨0点执行脚本

静态文件不记录日志和过期时间:

同样是在虚拟主机中配置

vim /usr/local/nginx/conf/vhost/test.com.conf    = 测试的虚拟主机配置文件

配置完以后还需要 -t && -s reload    检查配置文件语法是否有错误和重新加载配置文件

[root@aming-01 vhost]# /usr/local/nginx/sbin/nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@aming-01 vhost]# /usr/local/nginx/sbin/nginx -s reload

测试:curl -x127.0.0.1:80 test.com/1.gif/2.gs

cat /tmp/test.con.log

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Java成神之路

Oracle学习笔记_05_ 一个创建表空间、创建用户、授权的完整过程

2.1 表空间: 一般在开发情况下,我们当然不会使用用户的默认表空间,所以这时我们需要创建一个表空间. 

722
来自专栏王硕

原 如何在windows下手动初始化PostgreSQL数据库

33915
来自专栏运维小白

2.1/2.2 系统目录结构

ls (全称list) 用来列取目录和文件 若是想想修改sshd配置文件,需要到**/etc/ssh/sshd_config**中修改 实验,创建普通用户 ...

1756
来自专栏tiane12

Linux执行脚本出现Error: bin/bash^M: bad interpreter: no such file or directory问题解决方法

1243
来自专栏黑白安全

新手如何连接到MySQL

所谓数据库就是专为储存数据而设计的库,是相对独立的。所以对于运行在Web服务器上的PHP程序在使用数据库的时候,首先需要做的就是连接数据库。在PHP本身就提供对...

1533
来自专栏编程坑太多

跟我一起学docker(六)--数据管理

1592
来自专栏跟着阿笨一起玩NET

Windows7下32位IE异常不能打开解决方法

今天更新了Update及安装了一些软件,重启电脑后发现32位IE不能正常打开,而64位IE正常。

1102
来自专栏Jed的技术阶梯

Hadoop完全分布式集群搭建

集群中只有mapred-site.xml.template,可以从这个文件进行复制

711
来自专栏个人分享

Hadoop常用命令

HDFS基本命令: hadoop fs -cmd cmd: 具体的操作,基本上与UNIX的命令行相同 args:参数 HDFS资源URI格式: scheme:/...

792
来自专栏我的博客

sed简单用法

sed 命令:可以利用scrpipt命令批处理文本文件 sed [-hVn][-e<script>][-f<script>] -n 不显示处理过程 参数 ...

3249

扫码关注云+社区