十二周三课 Nginx访问日志、 Nginx日志切割、 静态文件不记录日志和过期时间

Nginx访问日志

Nginx的文件格式存在于主配置文件中。
/usr/local/nginx/conf/nginx.conf
然后搜索log_format找到他的配置文件

这样我们就可以进行日志的格式配置了。

我们常用如下配置。
$remote_addr
客户端IP(公网IP)
$http_x_forwarded_for
代理服务器的IP
$time_local
服务器本地时间
$host
访问主机名(域名)
$request_uri
访问的url地址
$status
状态码
$http_referer
referer
$http_user_agent
user_agent
除了在主配置文件nginx.conf里定义日志格式外,还需要在虚拟主机配置文件中增加。
我们用 access_log来定义他的访问日志路径在哪里。
我们用test.com.conf来举例子。我们在vhost目录下打开test.com.conf
然后输入 access_log /tmp/test.com.log aming;

这里我们需要注意的是我们不要把这行配置放到if的大括号中,而是要放到server的大括号中。
然后我我们进行语法检验和重新载入
/usr/local/nginx/sbin/nginx -t
/usr/local/nginx/sbin/nginx -s reload
然后我们访问以下我们定义的test2.com、test3.com、test4.com,然后再次访问cat /tmp/test.com.log。这样日志中就出现了我们刚才访问的日志了。
127.0.0.1 - [25/Apr/2018:20:45:41 +0800] test2.com "/admin/index.html/kldfjsaldjflk" 301 "-" "curl/7.29.0"
127.0.0.1 - [25/Apr/2018:20:46:32 +0800] test3.com "/admin/index.html/kldfjsaldjflk" 301 "-" "curl/7.29.0"
127.0.0.1 - [25/Apr/2018:20:46:37 +0800] test2.com "/admin/index.html/kldfjsaldjflk" 301 "-" "curl/7.29.0"

Nginx日志切割

首先我们创建一个shell脚本,以后我么可以将脚本放到 /usr/local/sbin下。
vim /usr/local/sbin/nginx_logrotate.sh
然后输入一下内容
#! /bin/bash
d=date -d "-1 day" +%Y%m%d (生成昨天的日期,格式为年-月-日)
logdir="/data/logs"
nginx_pid="/usr/local/nginx/logs/nginx.pid" (是为了执行最后一条命令,pid的路径一定要写对)
cd $logdir (进入到日志目录下)
for log in ls *.log (for循环)
do
mv $log $log-$d (然后将日志改名字)
done
/bin/kill -HUP cat $nginx_pid (从新加载,生成新的log)
然后我们执行一下脚本,其中-x是显示执行过程,sh是执行脚本
sh -x /usr/local/sbin/nginx_logrotate.sh
++ date -d ‘-1 day‘ +%Y-%m-%d

  • d=2018-04-24
  • logdir=/tmp/
  • nginx_pid=/usr/local/nginx/logs/nginx.pid
  • cd /tmp/
    ++ ls test.com.log
  • for log in ‘ls *.log
  • mv test.com.logtest.com.log-2018-04-24
    ++ cat /usr/local/nginx/logs/nginx.pid
  • /bin/kill -HUP 1387
    然后查看一下tmp目录,发现多了两个文件
    test.com.log-2018-04-24
    test.com.log
    这就是日志切割,以后每天都可以生成。
    每天生成机会占用磁盘空间,我们可以用find命令将过去没用的日志删除。
    find /tmp/ -name .log- -type f -mtime +30 |xargs rm
    然后我么需要做一个计划任务,每天0点执行。
    crontab -e
    然后在里面,输入0 0 * /bin/bash /usr/local/sbin/nginx_logrotate.sh
    这样就可以每天晚上0点执行日志切割脚本了。

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

网站上有很多的图片等静态文件,这个量会很大,产生的日志也会占用大量的空间,所以我们可以将日志设置为不记录日志和过期时间。
首先编辑nginx.com.conf这个配置文件
然后加入以下内容
location ~ ..(gif|jpg|jpeg|png|bmp|swf)$
{
expires 7d;
access_log off;
}
location ~ .
.(js|css)$
{
expires 12h;
access_log off;
}
其中expires为过期时间。
然后保存退出,检查语法是否错误和重新加载。

原文地址:http://blog.51cto.com/13067688/2107871

时间: 2024-10-12 07:19:11

十二周三课 Nginx访问日志、 Nginx日志切割、 静态文件不记录日志和过期时间的相关文章

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

一.Nginx访问日志#vim /usr/local/nginx/conf/nginx.conf日志格式的名字combined_realip可以自定义,例如将它修改为aming,注意,这里定义为什么,后面引用的时候就定义为什么(nginx配置文件看见分号才是这一行结束)#vim /usr/local/nginx/conf/vhost/test.com.conf //增加如下一行#/usr/local/nginx/sbin/nginx -t#/usr/local/nginx/sbin/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"'; 解析

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

一.Nginx访问日志 日志格式 vim /usr/local/nginx/conf/nginx.conf //搜索log_format combined_realip //规则名字 除了在主配置文件nginx.conf里定义日志格式外,还需要在虚拟主机配置文件中增加 vim /usr/local/nginx/conf/vhost/test.com.conf 添加 access_log /tmp/1.log combined_realip; 这里的combined_realip就是在nginx.

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

一:nginx访问日志 日志格式vim /usr/local/nginx/conf/nginx.conf //搜索log_format$remote_addr 客户端ip(公网ip)$http_x_forwarded_for 代理服务器的ip$time_local 服务器本地时间$host 访问主机名(域名)$request_uri 访问的url地址$status 状态码$http_referer referer$http_user_agent user_agent除了在主配置文件nginx.c

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

Nginx访问日志 1. 进入配置文件 [[email protected] src]# vim /usr/local/nginx/conf/nginx.conf  //搜索log_format 参考更改配置成如下: log_format aming '$remote_addr $http_x_forwarded_for [$time_local]' 如图: 日志格式字段含义如下: combined_realip为日志格式的名字,后面可以调用它. 2.到虚拟主机配置文件中指定访问日志的路径 [[

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

Nginx的访问日志 Nginx的日志切割 Nginx静态文件不记录日志和过期时间 原文地址:http://blog.51cto.com/13515599/2086909

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

Nginx访问日志 Nginx访问日志主要有两个参数控制:log_format #用来定义记录日志的格式(可以定义多种日志格式,取不同名字即可)access_log #用来指定日至文件的路径及使用的何种日志格式记录日志 设置访问日志的格式,打开配置文件vim /usr/local/nginx/conf/nginx.conf 搜索关键字log_format就可以找到日志格式配置行log_format语法格式及参数语法说明如下:$remote_addr客户端IP(公网IP)$http_x_forwa

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

1.Nginx访问日志 配制访问日志:默认定义格式: log_format combined_realip '$remote_addr $http_x_forwarded_for [$time_local]' ' $host "$request_uri" $status' ' "$http_referer" "$http_user_agent"';  (这是定义日志引用时的名字:combined_realip,后面的内容,就是需要被引用的)可以理

LNMP(3) 静态文件不记录日志和过期时间、Nginx防盗链、Nginx访问控制、解析php

                    静态文件不记录日志和过期时间 进入到虚拟主机配置文件 cd /usr/local/nginx/conf/vhost  编辑虚拟主机配置文件:vim test.com.conf  添加内容:   配置如下 location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ { expires      7d;    //过期时间 access_log off; } location ~ .*\.(js|css)$ { expires