Linux学习总结(四十一)nginx 访问日志配置,网页缓存有效期配置

我们在学些apache的时候已经接触过访问日志,还记得日志格式在哪里定义吗,在httpd的主配置文件中,/usr/lcoal/apache2.4/conf/httpd.conf 搜索LogFormat 就可以查看到,系统给了我们两种格式,combined 和common 我们选择使用了combined ,它记录的信息更全面。接下来我们在虚拟主机配置文件中定义了日志所在路径及类型。/usr/local/apache2.4/conf/extra/httpd-vhosts.conf

1访问日志

在nginx 住配置文件件中搜索Log_format获取到日志格式信息
cat /usr/local/nginx/conf/nginx.conf |grep -A2 log_format

各字段含义为:

其中紧跟log_format后面的 nginxlog 为日志格式的名字,后面要调用它。
接下来我们去虚拟主机配置文件中指定访问日志的路径。也就是在原有虚拟主机配置文件里加入一行内容:acces_log /tmp/nginx_accesslog nginxlog;

vim /usr/local/nginx/conf/vhost/test.com.conf
server
{
    listen 80;
    server_name test.com test1.com test2.com;
    index index.html index.htm index.php;
    root /data/wwwroot/test.com;
    if ($host != ‘test.com‘ ) {
        rewrite  ^/(.*)$  http://test.com/$1  permanent;
    }
    acces_log /tmp/nginx_access.log nginxlog;
}

-t -s reload 测试
访问一个不存在的网页
curl -x127.0.0.1:80 test.com/sdfsdf

2 日志切割

nignx的访问日志不像apache自带切割工具,因此我们要定义一个日志切割脚本来实现日志切割。

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"
cd $logdir
for log in `ls *.log`
do
    mv $log $log-$d
done
/bin/kill -HUP `cat $nginx_pid`

备注:
kill -HUP pid
pid 是进程标识。如果想要更改配置而不需停止并重新启动服务,请使用该命令。在对配置文件作必要的更改后,发出该命令以动态更新服务配置。根据约定,当您发送一个挂起信号(信号 1 或 HUP)时,大多数服务器进程(所有常用的进程)都会进行复位操作并重新加载它们的配置文件
我们运行下脚本,查看下是否切割

sh /usr/local/sbin/nginx_log_rotate.sh
ls /tmp/*log*

3 配置静态文件不记录日志,配置缓存过期时间

需求跟httpd一样,但是配置就简单许多了。将虚拟主机配置文件更改为如下:

server
{
    listen 80;
    server_name test.com test1.com test2.com;
    index index.html index.htm index.php;
    root /data/wwwroot/test.com;
    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
     {
          expires      7d;
          access_log off;
    }
   location ~ .*\.(js|css)$
    {
          expires      12h;
          access_log off;
    }
}

echo "1111111111" > /data/wwwroot/test.com/1.js //模拟一个js文件
echo "22222222222" > /data/wwwroot/test.com/2.jpg //模拟一个jpg文件
touch /data/wwwroot/test.com/1.jss //创建一个对比文件,不属于以上配置
curl -x127.0.0.1:80 test.com/1.js -I

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

curl -x127.0.0.1:80 test.com/1.jss -I

我们从从前两个的访问结果可以看到出现了max-age这一项,就是我们前面定义的缓存有效时长,单位是秒。最有一个jss文件不在配置内,所以没有这一项。
最后我们看下访问日志,发现js和jpg文件的访问都没有记录。

原文地址:http://blog.51cto.com/12606610/2107912

时间: 2024-09-28 19:10:51

Linux学习总结(四十一)nginx 访问日志配置,网页缓存有效期配置的相关文章

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

一.Nginx访问日志 日志格式 # pwd /usr/local/nginx/conf [[email protected] conf]# vim nginx.conf log_format ELA '$remote_addr $http_x_forwarded_for [$time_local]' ' $host "$request_uri" $status' ' "$http_referer" "$http_user_agent"'; 解析

Linux学习笔记四:Linux的文件搜索命令

1.文件搜索命令  which 语法:which [命令名称] 范例:$which ls  列出ls命令所在目录 [[email protected] ~]$ which ls alias ls='ls --color=auto' /bin/ls 另外一个命令:whereis [名称名称],也可以列出命令所在目录. [[email protected] ~]$ whereis ls ls: /bin/ls /usr/share/man/man1/ls.1.gz /usr/share/man/ma

ELK+syslog+nginx访问日志收集+分词处理

一.nginx访问日志配置: 1.日志格式配置: log_format json '{"@timestamp":"$time_iso8601",' '"host":"$server_addr",' '"clientip":"$remote_addr",' '"size":$body_bytes_sent,' '"xff":"$http_x

elkstack实战---集中管理nginx访问日志及报表展示

一.nginx访问日志,格式调整为json # cat /opt/config/tengine/nginx.conf |grep json log_format json '{"@timestamp":"$time_iso8601",' '"host":"$server_addr",' '"method":"$request_method",' '"url":&quo

Linux学习第四节课-文件管理基本概念及相关部分指令

Linux学习第四节课 --------------------------------------------------------------------------------------------------------------------------------------------------------------------- 十九.文件管理基本概念 文件和目录被组织成一个单根倒置树结构: 文件系统从根目录开始,用/表示: 根文件系统(rootfs):root file

自定义nginx访问日志和内置变量使用

自定义nginx访问日志和内置变量使用 安装第三方echo模块后查看内置变量 内置变量 1.$args 用户在浏览器中查找的相关参数(uri中?之后的字段)2.$document_root 站点根目录所在的位置3.$document_uri 去除url中域名部分后所剩下的目录4.$host 所访问的主机5.$http_user_agent 客户端所使用的浏览器6.$http_cookie 客户端的cookie信息7.$limit_rate 客户端的下载速率0表示不限制速度 server { se

Nginx 访问日志增长暴增出现尖刀的详细分析

前言:          Nginx日志里面Mobileweb_access.log增长特别大,一天上百兆,将近100W的访问记录,按照我们目前的规模,热点用户才500个左右,就算人人用手机app访问,怎么可能会有这么大的url访问量?以前只是安装使用nginx,还没有抽出时间仔细研究,这回需要彻底的去分析nginx日志了. 1,日志分类 主要2种,一种是错误日志,一种是访问日志,这些配置都在/usr/local/nginx/conf/nginx.conf里面,默认都是打开的,自己也可以选择关闭

【Unity 3D】学习笔记四十一:关节

关节 关节组件可以添加至多个游戏对象中,而添加关节的游戏对象将通过关节连接在一起并且感觉连带的物理效果.需要注意的是:关节必须依赖于刚体组件. 关节介绍 关节一共分为5大类:链条关节,固定关节,弹簧关节,角色关节和可配置关节. 链条关节(hinge joint):将两个物体以链条的形式绑在一起,当力量大于链条的固定力矩时,两个物体就会产生相互的拉力. 固定关节(fixed joint):将两个物体永远以相对的位置固定在一起,即使发生物理改变,它们之间的相对位置也将不变. 弹簧关节(spring

linux awk命令分析http server访问日志

摘抄自http://www.ibm.com/developerworks/ AWK 简介 AWK 是一种"样式扫描和处理语言".它允许您创建简短的程序,这些程序读取输入文件.为数据排序.处理数据.对输入执行计算以及生成报表.它的名称取自于它的创始人 Alfred Aho. Peter Weinberger 和 Brian Kernighan 姓氏的首个字母. 本文论述的 awk 命令主要指 Linux 操作系统中广泛包含的内置程序 /bin/gawk,它是 Unix awk 程序的 G