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中访问日志相关指令主要有两条,一条是 ...
随机推荐
- flaks-自定义url转换器
flaks-自定义url转换器 from flask import Flask, url_for from werkzeug.routing import BaseConverter app = Fl ...
- python3的subprocess的各个方法的区别(二)
subprocess如何避免死锁 如果交互是双工的,即涉及读取和写入,则尤其如此.这种交互可能导致死锁,因为两个进程都可能最终等待另一个进程的输出 您希望从子进程标准输出管道读取,但标准错误管道的缓冲 ...
- 汇编刷题:求1000H单元开始的10个无符号字节数的最大值(本题放入了BL寄存器)
DATA SEGMENT ORG 1000H INFO DB 1,2,3,4,5,70H,71H,72H,80H,92H MAX DB 00H DATA ENDS CODE SEGMENT ASSUM ...
- 中阶 d03.5 (正篇)完整的Dao 操作数据库
1.目录结构: util---JDBCUtil.java(工具包,整合建立链接和释放资源的方法) dao---UserDao.java(接口,定义方法) impl---UserDaoImpl.java ...
- idle中上传jar包并使用的方法
创建一个lib目录,将jar包拉到该目录下. 需要导入的Jar包上,点击右键,选择Add as Library…
- 07-JDBC协议
1.下载mysql-connector-java-8.0.17.jar,jar包放进jmeter的安装目录lib文件夹下,启动jmeter就好 2.新增线程组,然后添加配置元件:JDBC connec ...
- 经常使用到的vim命令
常用的vim命令 总结了我经常用到的vim命令,虽然不是很全,但是日常的开发足够了 启动vim vim 直接启动vim vim filename 打开vim并创建名为filename的文件 插入命令 ...
- @ModelAttribute 的使用
@ModelAttribute注解可被应用在 方法 或 方法参数 上. 对方法使用 @ModelAttribute 注解: 注解在方法上的@ModelAttribute说明了方法的作用是用于添加一个或 ...
- Unity 游戏框架搭建 2019 (二十九) 方法所在类命名问题诞生的原因
我们在整理阶段解决了一些意外的问题.但是这些问题仅仅只是被解决而已,我们并没有去思考过这些问题是为什么产生的?以及在以后我们如何去避免这些问题的产生? 方法所在类的命名问题,最后我们通过方法分类解决了 ...
- 从零开始学习docker之在docker中运行springboot项目
一.docker环境配置 首先需要一个安装了docker的服务器(本地或者云服务器),如果没有请看上文,传送门---https://www.cnblogs.com/wdfordream/p/12737 ...