6月8日

12.10 Nginx访问日志

Nginx访问日志

1. 进入配置文件

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

更改以下配置

log_format aming '$remote_addr $http_x_forwarded_for [$time_local]'

如下图:

blob.png 

日志格式字段含义如下:

combined_realip为日志格式的名字,后面可以调用它。

blob.png 

2.虚拟主机配置文件中指定访问日志的路径

 vim /usr/local/nginx/conf/vhost/test.com.conf

增加如下内容:(这里的combined_realip就是nginx.conf中定义的日志格式名字

access_log /tmp/test.com.log combined_realip;

blob.png 

3.测试语法及重新加载配置

 /usr/local/nginx/sbin/nginx -t

 /usr/local/nginx/sbin/nginx -s reload

4.使用curl测试

curl -x127.0.0.1:80 test.com -I

blob.png 

curl -x127.0.0.1:80 test2.com/admin -I

blob.png 

curl -x127.0.0.1:80 test2.com/admin/index.html -I

blob.png 

4.1查看一下日志

cat /tmp/test.com.log

blob.png 

 12.11 Nginx日志切割

Nginx日志切割

 

1.自定义一个shell脚本

vim /usr/local/sbin/nginx_log_rotate.sh

定义如下内容:

#!/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` do     mv $log $log-$d done /bin/kill -HUP `cat $nginx_pid`   //Nginx-s重新加载配置文件一样

blob.png 

2.执行脚本

sh执行,-x是显示执行的过程(可视化)

 sh -x /usr/local/sbin/nginx_log_rotate.sh

blob.png 

2.1查看一下/data/logs目录

ls /data/logs

 

3.添加任务计划 (脚本之后还要加一个任务计划)

 crontab -e     //添加任务计划

增加如下内容:(每天凌晨0执行一下这个脚本)

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

blob.png 

3.1 定期删除日志:

find /tmp/ -name *.log-* -type f -mtime +30 |xargs rm 

(找出30天前名字为log-*后缀的日志并删除)



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

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

1.修改虚拟主机配置文件

添加以下配置:

location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$          //匹配脱义静态文件     {           expires      7d;                    //配置过期时间           access_log off;     } location ~ .*\.(js|css)$               //匹配js,css文件     {           expires      12h;           access_log off;     }

blob.png 

2.测试语法及重新加载配置

 /usr/local/nginx/sbin/nginx -t

 /usr/local/nginx/sbin/nginx -s reload

3.使用curl测试静态文件不记录,进入目录并创建1.gif  2.js 后缀的文件

cd /data/wwwroot/test.com

vim 1.gif      //内容123 ABC

vim 2.js       //内容abc abc abc

blob.png 

3.1 curl看一下状态结果并查看日志确认(gif和js的没有日志记录)

blob.png 

4.测试一下过期时间

curl一下,因为之前有定义过期expires 12h,所以状态中有这个max-age

curl -x127.0.0.1:80 test.com/2.js -I

blob.png 

4.1 我们再去修改一下脚本文件试着把过期时间去掉让其不生效

vim /usr/local/nginx/conf/vhost/test.com.conf

将定义js模块的 expires 12h 注释掉

blob.png 

4.2 测试语法及重新加载配置

 /usr/local/nginx/sbin/nginx -t

 /usr/local/nginx/sbin/nginx -s reload

4.3 curl测试查看一下状态

curl -x127.0.0.1:80 test.com/2.js -I

blob.png 

 



猜你喜欢

转载自blog.51cto.com/404006045/2126627