Nginx访问日志.Nginx日志切割
11月27日任务
12.10 Nginx访问日志
12.11 Nginx日志切割
12.12 静态文件不记录日志和过期时间
1.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.conf里定义日志格式外,还需要在虚拟主机配置文件中增加
- vim test.com.conf
- access_log /tmp/1.log combined_realip;

- 这里的combined_realip就是在nginx.conf中定义的日志格式名字
- -t && -s reload 检查语法并重新加载配置文件
- curl -x127.0.0.1:80 test.com -I 测试

- cat /tmp/1.log 查看日志文件

2.Nginx日志切割

示例一:因为Nginx不自带日志切割工具,所以自定义脚本借用
- 自定义shell 脚本
- vim /usr/local/sbin/nginx_log_rotate.sh//写入如下内容
#! /bin/bash
## 假设nginx的日志存放路径为/data/logs/
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` 重新加载一下,生成新的日志文件
- 执行一下这个脚本来看看效果,执行过程

- ls /tmp/ 看一下

- 在做一个任务计划 ,每天0.0分执行该脚本
- crontab -e 编辑如下
0 0 * * * /bin/bash /usr/local/sbin/nginx_log_rotate.sh
3.静态文件不记录日志和过期时间

示例一:
- vi test.com.conf
- 配置如下
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 7d; 定义过期时间
access_log off; 关闭日志记录
}
location ~ .*\.(js|css)$
{
expires 12h;
access_log off;
}
- -t &&reload 检测语法,并重新加载一下配置文件

- 测试,先创建两个以图片结尾的文件
cd /data/wwwroot/test.com
vim 1.gif
vim 2.js
- curl测试一下

- 查看日志是否记录

- 测试过期时间

Nginx访问日志.Nginx日志切割的更多相关文章
- Nginx虚拟主机、日志排错、模块配置
目录 Nginx虚拟主机 1. 基于多IP的方式 2. 基于多端口的方式 3. 基于多域名的方式 Nginx日志 Nginx配置文件配置项 Nginx模块 Nginx访问控制模块 Nginx状态监控模 ...
- Nginx 访问日志轮询切割
Nginx 访问日志轮询切割脚本 #!/bin/sh Dateformat=`date +%Y%m%d` Basedir="/application/nginx" Nginxlog ...
- 按日期切割nginx访问日志--及性能优化
先谈下我们需求,一个比较大的nginx访问日志,根据访问日期切割日志,保存在/tmp目录下. 测试机器为腾讯云机子,单核1G内存.测试日志大小80M. 不使用多线程版: #!/usr/bin/env ...
- Nginx访问日志、 Nginx日志切割、静态文件不记录日志和过期时间
1.Nginx访问日志 配制访问日志:默认定义格式: log_format combined_realip '$remote_addr $http_x_forwarded_for [$time_loc ...
- Nginx访问日志、日志切割、静态文件不记录日志和过期时间
6月8日任务 12.10 Nginx访问日志12.11 Nginx日志切割12.12 静态文件不记录日志和过期时间 12.10 Nginx访问日志 除了在主配置文件nginx.conf里定义日志格式外 ...
- Linux centosVMware Nginx访问日志、Nginx日志切割、静态文件不记录日志和过期时间
一.Nginx访问日志 vim /usr/local/nginx/conf/nginx.conf //搜索log_format 日至格式 改为davery格式 $remote_addr 客户端IP ...
- Nginx的继续深入(日志轮询切割,重写,负载均衡等)
Nginx的访问日志轮询切割 通常什么情况Nginx会把所有的访问日志生成到一个制定的访问日志文件access.log里面,但时间一长,日志个头很大不利于日志的分析和处理. 有必要对Nginx日志进行 ...
- nginx高性能WEB服务器系列之八--nginx日志分析与切割
nginx系列友情链接:nginx高性能WEB服务器系列之一简介及安装https://www.cnblogs.com/maxtgood/p/9597596.htmlnginx高性能WEB服务器系列之二 ...
- Nginx日志配置与切割
访问日志主要记录客户端访问Nginx的每一个请求,格式可以自定义.通过访问日志,你可以得到用户地域来源.跳转来源.使用终端.某个URL访问量等相关信息. Nginx中访问日志相关指令主要有两条,一条是 ...
随机推荐
- Github 骚操作
GitHub 竟然有这些骚操作,真是涨姿势 GitHub,不用过多介绍.一个面向开源及私有软件项目的托管平台,因为只支持 git 作为唯一的版本库格式进行托管,故名 GitHub. 作为「全球最大的程 ...
- 切片-list、字符串
切片-list.字符串 1.字符串,切片顾头不顾尾 s="123455" print(s[0:3]) 结果:123 2.list d=[12,34,45] print(d[: ...
- 《深入理解 Java 虚拟机》读书笔记:晚期(运行期)优化
正文 在部分商用虚拟机(Sun HotSpot.IBM J9)中,Java 程序最初是通过解释器进行解释执行的,当虚拟机发现某个方法或代码块的运行特别频繁时,就会把这些代码认定为"热点代码& ...
- Java创建线程的三种形式的区别以及优缺点
1.实现Runnable,Callable Callable接口里定义的方法有返回值,可以声明抛出异常. 继承Callable接口实现线程 class ThreadCall implements Ca ...
- **********Prometheus(三)******************
通过centos7.x来部署Prometheus ####同步时间,否则后面监控会有异常!!!!!####### 1. 创建文件夹,上传软件包.解压并将prometheus promtool两个命令复 ...
- 基于linux或windows的c/s的循环服务器求一元二次方程的根
在linux和windows上实现 c/s模式 socket循环服务器求解一元二次方程的根 ax^2+bx+c=0 根据上式,客户端发送a,b,c给服务器,返回求解的根 暂未考虑非法数据等问题 lin ...
- 控件:DataGridView列类型
DataGridView的列的类型提供有多种,包括有: (1)DataGridViewTextBoxColumn(文本列,默认的情况下就是这种) (2)DataGridViewComboBoxColu ...
- 【WPF学习】第六十七章 创建自定义面板
前面两个章节分别介绍了两个自定义控件:自定义的ColorPicker和FlipPanel控件.接下来介绍派生自定义面板以及构建自定义绘图控件. 创建自定义面板是一种特殊但较常见的自定义控件开发子集.前 ...
- Kaggle入门——泰坦尼克号生还者预测
前言 这个是Kaggle比赛中泰坦尼克号生存率的分析.强烈建议在做这个比赛的时候,再看一遍电源<泰坦尼克号>,可能会给你一些启发,比如妇女儿童先上船等.所以是否获救其实并非随机,而是基于一 ...
- Matlab学习-(3)
1. 二维图 绘制完图形以后,可能还需要对图形进行一些辅助操作,以使图形意义更加明确,可读性更强. 1.1 图形标注 title(’图形名称’) (都放在单引号内)xlabel(’x轴说明’)ylab ...