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

本文详细介绍了Nginx日志的配置方法,包括如何定义虚拟主机日志格式,实现日志切割以提高服务器性能,以及如何通过设置静态文件的过期时间和关闭其日志记录来进一步优化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Nginx访问日志

###设置日志格式

vim /usr/local/nginx/conf/nginx.conf //搜索log_format

输入图片说明输入图片说明 ###定义虚拟主机日志格式

定义虚拟主机的前提是在Nginx配置文件中设定日志格式,然后才能在虚拟主机中进行调用(格式名称)。

定义test.com.conf日志格式:  
[root@jiangshan vhost]# vim test.com.conf  
access_log /tmp/test.com.log combined_realip;   #指定日志位置及格式

####检查错误:

[root@jiangshan vhost]# /usr/local/nginx/sbin/nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok

####重启

[root@jiangshan vhost]# /usr/local/nginx/sbin/nginx -reload
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

Nginx日志切割

自定义shell 脚本

vim /usr/local/sbin/nginx_log_rotate.sh//写入如下内容
#! /bin/bash
d=`date -d "-1 day" +%Y%m%d` 
#定义切割时间(切割一天前的日志)
logdir="/tmp/"
#此处指定要切割的日志路径(该路径来自虚拟主机配置文件)
nginx_pid="/usr/local/nginx/logs/nginx.pid"
#调用pid的目的是执行命令:/bin/kill -HUP `cat $nginx_pid`
#该命令等价于命令:nginx -s reload(重新加载文件),确保与虚拟主机配置文件变更保持同步
#该地址来自nginx配置文件
cd $logdir
for log in `ls *.log`
do
    mv $log $log-$d
done
#此处使用通配进行循环,对所有复合条件的日志文件进行切割
/bin/kill -HUP `cat $nginx_pid`
#执行此命令进行重载生成新的日志文件来记录新的日志

###任务计划

0 0 * * * /bin/bash /usr/local/sbin/nginx_log_rotate.sh

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

###编辑配置文件如下

location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
    #匹配文件类型
    {
          expires      7d;
          #过期时间为7天
          access_log off;
          #不记录该类型文件的访问日志
    }
location ~ .*\.(js|css)$
    {
          expires      12h;
          #过期时间为12小时
          access_log off;
          #不记录该类型文件的访问日志
    }
    access_log /tmp/test.com.log combined_realip;
    #指定日志位置及格式

转载于:https://my.oschina.net/jiangshanlinux/blog/1506957

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值