/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.confserver{ ???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/bashd=`date -d "-1 day" +%Y%m%d`logdir="/tmp/"nginx_pid="/usr/local/nginx/logs/nginx.pid"cd $logdirfor log in `ls *.log`do ???mv $log $log-$ddone/bin/kill -HUP `cat $nginx_pid`
备注:
kill -HUP pid
pid 是进程标识。如果想要更改配置而不需停止并重新启动服务,请使用该命令。在对配置文件作必要的更改后,发出该命令以动态更新服务配置。根据约定,当您发送一个挂起信号(信号 1 或 HUP)时,大多数服务器进程(所有常用的进程)都会进行复位操作并重新加载它们的配置文件
我们运行下脚本,查看下是否切割
sh /usr/local/sbin/nginx_log_rotate.shls /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文件的访问都没有记录。
Linux学习总结(四十一)nginx 访问日志配置,网页缓存有效期配置
原文地址:http://blog.51cto.com/12606610/2107912