2018.3.14 12周3次课

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2018.3.14 12周3次课相关的知识,希望对你有一定的参考价值。

十二周三次课 (3月14日)

12.10 nginx访问日志 12.11 Nginx日志切割 12.12 静态文件不记录日志和过期时间

12.10 Nginx访问日志

日志格式:

vim /usr/local/nginx/conf/nginx.conf //搜索log_format,注意配置文件中,分号;是结束符

技术分享图片

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

$remote_addr:客户端IP(公网IP),就是访问网站的用户的出口IP

$http_x_forwarded_for:代理服务器IP,如果使用了代理,则会记录代理的IP

$time_local:服务器本地时间

$host:访问的主机名(域名)

$request_uri:访问的URL地址

$status:状态码

$http_referer:为referer地址

$http_user_agent:为usr_agent

除了在主配置文件nginx.conf里定义日志格式外,还需要在虚拟主机配置文件中增加日志一行

access_log /tmp/1.log aming; //这里的aming就是在nginx.conf中定义的日志格式名字,如果不写就是默认的日志格式,比较简单

技术分享图片

-t && -s reload

技术分享图片

测试

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

技术分享图片

curl -x127.0.0.1:80 test3.com/admin/index.html/jfasljgsn –I

技术分享图片

查看日志:

cat /tmp/1.log

技术分享图片

12.11 Nginx日志切割

Nginx的日志很简单,不像httpd还有自带的切割工具,要想切割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路径一定要对,不然最后一条命令就无法执行

cd $logdir //进入到日志目录下

for log in `ls *.log` //进行循环查看log文件

do

   mv $log $log-$d //改名成log名-昨天日期

done

/bin/kill -HUP `cat $nginx_pid` //重新加载,生成新的日志文件

执行脚本:sh -x /usr/local/sbin/nginx_log_rotate.sh

技术分享图片

技术分享图片

任务计划:crontab -e

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

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

配置如下

location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ //【.*】表示通配。小括号里有【|】:表示或者。【\.】:表示脱义,如果不加【\】,后面的【.】表示任何字符

   {

         expires      7d; // expires配置过期时间

         access_log off; //配置为off就可以不记录访问日志

   }

location ~ .*\.(js|css)$

   {

         expires      12h;

         access_log off;

}

技术分享图片

测试记录:

不记录.gif 和.js文件

技术分享图片

技术分享图片

测试过期时间:

技术分享图片


以上是关于2018.3.14 12周3次课的主要内容,如果未能解决你的问题,请参考以下文章

2018.3.13 12周2次课

2018.3.12 12周1次课

2018.3.16 12周5次课

2017.12.26 3周2次课

2017.12.27 3周3次课

2017.12.20 2周3次课