0811Nginx访问日志设置

12.10 Nginx访问日志

日志格式

vim /usr/local/nginx/conf/nginx.conf   搜索log_format定义名字,后面定义下面这些


$remote_addr


客户端IP(公网IP)百度搜ip可以查到


$http_x_forwarded_for


代理服务器的IP,考试模拟网站就是代理ip


$time_local


服务器本地时间


$host


访问主机名(域名)


$request_uri


访问的url地址


$status


状态码,301404


$http_referer


referer


$http_user_agent


user_agent

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

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

access_log /tmp/test.com.log; 这就是虚拟主机日志地址 ,加到任意一行

这里的access_log /tmp/test.com.log quyifan

就是在/usr/local/nginx/conf/nginx.conf中定义的日志格式名字quyifan

/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/test.com.log 查看上面日志

日志只记录了成功登陆的信息,任何域名都跳转到test.com,但是乱写的不记录在日志

12.11 Nginx日志切割

没有自带切割工具,可以写一个日志切割脚本

这里自定义shell脚本

vim /usr/local/sbin/nginx_log_rotate.sh  shell脚本保存在这里

配置如下

#! /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` #执行此命令进行重载生成新的日志文件来记录新的日志

执行该脚本,-x显示脚本执行过程:

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

任务计划:

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

删除30天前的日志 find /tmp/ -name *.log-* -type f -mtime +30 | xargs rm

这里日志创建好,今天时间没到还没切割,所以只有test.com.log有信息

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;

}

location指定静态文件 expires指定过期时间 access_log配置成off就代表不记录日志

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

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

测试:加两个后缀为1.gif和2.js的文件

echo "11111111111" > /data/wwwroot/test.com/1.gif

echo "22222222222" > /data/wwwroot/test.com/2.js

touch /data/wwwroot/test.com/1.jss

curl -x127.0.0.1:80 test.com/1.gif

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

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

然后查看日志 cat /tmp/test.com.log 没有记录gif和js的日志

最后日志没有记录jpg和js,记录了错误的404和jss,实验成功

jpg和js的过期时间不同,查看如下

时间: 2024-10-26 15:00:45

0811Nginx访问日志设置的相关文章

采集并分析Nginx访问日志

日志服务支持通过数据接入向导配置采集Nginx日志,并自动创建索引和Nginx日志仪表盘,帮助您快速采集并分析Nginx日志. 许多个人站长选取了Nginx作为服务器搭建网站,在对网站访问情况进行分析时,需要对Nginx访问日志统计分析,从中获取网站的访问量.访问时段等访问情况.传统模式下利用CNZZ等方式,在前端页面插入js,用户访问的时候触发js,但仅能记录访问请求.或者利用流计算.离线统计分析Nginx访问日志,但需要搭建一套环境,并且在实时性以及分析灵活性上难以平衡. 日志服务在支持查询

apache服务器访问日志access.log设置

一.访问日志信息 当浏览器请求服务器时,如果在服务器上设置了访问日志,就会记录下用户的访问记录. 例如我访问本地apache所产生的一条默认的日志: 127.0.0.1 - - [03/Feb/2015:23:14:24 +0800] "GET / HTTP/1.1" 200 2 分为7个部分 (1)第一项信息是远程主机的地址,即它表明访问网站的究竟是谁.(可以要求apache查出所有的主机名字,并在日志文件中用主机名字来替代IP地址,但这种做法会极大的影响服务器记录日志的速度,从而降

开启并设置tomcat的访问日志

首先在默认情况下tomcat是不开启访问日志的.而且tomcat的日志文件路径默认存储在tomcat安装路径下的logs文件夹内.我们首先编辑 ${catalina}/conf/server.xml 文件. 解释 :${catalina} 是 tomcat 的安装目录.本篇中我们编辑文件路径为/usr/local/tomcat6/conf/server.xml.执行命令nano /usr/local/tomcat6/conf/server.xml. 在打开文件后,将文件内 <Valve clas

lamp-日志设置(访问日志切割、不记录静态文件日志、缓存文件过期时间)

访问日志不记录指定类型的文件 在网站大多数元素为静态文件,比如图片.css.js等,这些静态文件都可以不用记录,我们只需要记录哪个ip访问了那个网页就可以: 编辑配置文件 vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf 在 ErrorLog "logs/111.com-error_log"的下面加入: SetEnvIf Request_URI ".*\.gif$" img SetEnvIf Request_

nginx访问日志配置+日志切割+不记录静态文件日志+设置静态文件过期时间

nginx访问日志 查看nginx.conf文件 vim /usr/local/nginx/conf/nginx.conf 中间有一行是定义log的格式 log_format combined_realip '$remote_addr $http_x_forwarded_for [$time_local]' ' $host "$request_uri" $status' ' "$http_referer" "$http_user_agent"';

tomcat 访问日志源码分析与应用

tomcat 日志可以分为两类: 1.访问日志,记录访问的时间.来源.资料等相关信息(ServletRequest 可以获取的信息,都可以记录): 2.运行日志,记录tomcat 运行.异常.错误信息. tomcat 的日志记录常会被 log4j 或 slf4j 取代,不过这里不讨论另外日志组件,很纯粹地说一下tomcat 原生的访问日志.关于运行日志的分析,有机会再另写一篇.对于访问日志,tomcat 定义了以下接口: public interface AccessLog { // 记录访问日

转 Tomcat访问日志详细配置

配置http访问日志.Tomcat自带的能够记录的http访问日志已经很详细了取消下面这段的注释: <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log." suffix=".txt" pattern="common" resolveHosts

Tomcat访问日志详细配置

在server.xml里的<host>标签下加上 <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log." suffix=".txt" pattern="common" resolveHosts="false"/

配置apache访问日志和日志切割

配置apache访问日志和日志切割 1.打开apache主配置文件,命令:vim /usr/local/apache2/conf/httpd.conf,找到log_config_module模块,可以看到两条logformat(日志格式),如下图所示: 2.添加自定义的logformat(日志格式),命名为aming如下图所示: 保存退出! 3.打开虚拟主机配置文件,命令:vim /usr/local/apache2/conf/extra/httpd-vhosts.conf,找到<Virtual