2018-3-14 Linux学习笔记
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2018-3-14 Linux学习笔记相关的知识,希望对你有一定的参考价值。
12.10 nginx访问日志
- Nginx访问日志的格式是在主配置文件中定义的.
- vim /usr/local/nginx/conf/nginx.conf //搜索log_format
-
日志字段含义:
$remote_addr 客户端IP(公网IP)
$http_x_forwarded_for 代理服务器的IP
$time_local 服务器本地时间
$host 访问主机名(域名)
$request_uri 访问的url地址
$status 状态码
$http_referer referer
$http_user_agent user_agent - 除了在主配置文件nginx.conf里定义日志格式外,还需要在虚拟主机配置文件中
vi /usr/local/nginx/conf/vhost/test.com.conf - 增加一行,以配置访问日志的存放位置
access_log /tmp/1.log nginx_log; - 这里的nginx_log就是在nginx.conf中定义的日志格式名字
- /usr/local/nginx/sbin/nginx -t
- /usr/local/nginx/sbin/nginx -s reload
- 访问日志测试结果:
curl -x127.0.0.1:80 test.com -I
curl -x127.0.0.1:80 test2.com -I
cat /tmp/1.log
12.11 Nginx日志切割
- 如前所说,为了防止日志过大占用存储空间,我们需要将日志切割并定期清理.由于nginx没有自带切割工具,所以在此学习用shell脚本来实现日志切割.
-
自定义shell 脚本
vim /usr/local/sbin/nginx_log_rotate.sh #写入如下内容
#! /bin/bash
#假设nginx的日志存放路径为/tmp/
d=`date -d "-1 day" +%Y%m%d`
logdir="/tmp/"
nginx_pid="/usr/local/nginx/logs/nginx.pid"
cd $logdir
for log in `ls *.log`
do
mv $log $log-$d
done
/bin/kill -HUP `cat $nginx_pid` - 执行日志切割脚本:
sh -x /usr/local/sbin/nginx_log_rotate.sh #加-x可以看到脚本执行过程 - 设定日志切割任务计划
crontab -e -
加入如下一行:
0 0 * * * /bin/bash /usr/local/sbin/nginx_log_rotate.sh - 定期清理日志文件示例(将超过30天的日志文件删除):
find /tmp/ -name *.log-* -tpye f -mtime +30 | xargs rm
12.12 静态文件不记录日志和过期时间
- 设置静态文件不记录日志和过期时间的方法:
- 编辑虚拟主机配置文件
vim /usr/local/nginx/conf/vhost/test.com.conf - 配置如下
location ~ .\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 7d;
access_log off;
}
location ~ .\.(js|css)$
{
expires 12h;
access_log off;
}
- /usr/local/nginx/sbin/nginx -t
- /usr/local/nginx/sbin/nginx -s reload
- 测试结果:
cd /data/wwwroot/test.com
vim 1.gif
vim 2.css
curl -x127.0.0.1:80 test.com/1.gif
curl -x127.0.0.1:80 test.com/2.css
curl -x127.0.0.1:80 test.com/index.html
curl -x127.0.0.1:80 test.com/2.cssasdfa
curl -x127.0.0.1:80 test.com/1.gif -I
cat /tmp/1.log
以上是关于2018-3-14 Linux学习笔记的主要内容,如果未能解决你的问题,请参考以下文章