文档章节

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

蛋黄_Yolks
 蛋黄_Yolks
发布于 08/14 23:28
字数 789
阅读 7
收藏 3

Nginx访问日志

1.打开配置文件,搜索log_format

vim /usr/local/nginx/conf/nginx.conf

2.访问日志常用变量含义

  • $remote_addr : 客户端IP(公网IP)
  • $http_x_forwarded_for : 代理服务器的IP
  • $time_local : 服务器本地时间
  • $host : 访问主机名(域名)
  • $request_uri : 访问的url地址
  • $status : 状态码
  • $http_referer : referer
  • $http_user_agent : user_agent

3.此处我们将原来的规则名称combined_realip修改为yolks_realip并且进行保存

4.修改虚拟主机配置文件

  1. 编辑虚拟机配置文件
vim /usr/local/nginx/conf/vhost/test.com.conf

2)添加如下代码

access_log /tmp/1.log yolks_realip; #后面此名称代表主配置文件的日志规则名称,此处不指定则使用默认的日志规则,显示内容比较简单

5.检查配置文件并重新加载

/usr/local/nginx/sbin/nginx -t #检查
/usr/local/nginx/sbin/nginx -s reload #重启

6.curl测试

[root@yolks2 ~]# curl -x127.0.0.1:80 test2.com/admin/admin.html -I 
HTTP/1.1 301 Moved Permanently
Server: nginx/1.6.3
Date: Tue, 14 Aug 2018 14:45:04 GMT
Content-Type: text/html
Content-Length: 184
Connection: keep-alive
Location: http://test.com/admin/admin.html

7.查看错误日志格式

[root@yolks2 ~]# cat /tmp/test.com.log 
127.0.0.1 - [14/Aug/2018:22:45:04 +0800] test2.com "/admin/admin.html" 301 "-" "curl/7.29.0"

Nginx日志切割

日志切割脚本实现,即shell实现

1.编辑文件 /usr/local/sbin/nginx_log_rotate.sh,添加如下代码

## 假设nginx的日志存放路径为/data/logs/
d=`date -d "-1 day" +%Y%m%d` #生成昨天的日期:例如20180813
logdir="/tmp/" #定义日志目录
nginx_pid="/usr/local/nginx/logs/nginx.pid" #pid号
cd $logdir #进入目录
for log in `ls *.log` #循环ls出来的log
do
    mv $log $log-$d #修改名称
done
/bin/kill -HUP `cat $nginx_pid` #杀掉进程重启,可使用 /usr/local/nginx/sbin/nginx -s reload 替换

2.执行脚本命令 : sh

  • x : 查看执行过程

执行命令

[root@yolks2 ~]# sh -x /usr/local/sbin/nginx_log_rotate.sh

执行过程

++ date -d '-1 day' +%Y%m%d
+ d=20180813
+ logdir=/tmp/
+ nginx_pid=/usr/local/nginx/logs/nginx.pid
+ cd /tmp/
++ ls test.com.log
+ for log in '`ls *.log`'
+ mv test.com.log test.com.log-20180813
++ cat /usr/local/nginx/logs/nginx.pid
+ /bin/kill -HUP 885

3.查看/tmp/目录下test*的文件

[root@yolks2 ~]# ls /tmp/ |grep test*
test.com.log
test.com.log-20180813

4.定时清理旧日志

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

5.添加定时任务计划

1)编辑定时任务文件

crontab -e

2)计划任务代码如下

0 0 * * * /bin/bash /usr/local/sbin/nginx_log_rotate.sh #每天0点执行

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

1.编辑配置文件**/usr/local/nginx/conf/vhost/test.com.conf**添加如下代码:

	location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ #匹配静态文件后缀,.gif|.jpg|.jpeg|.png|.bmp|.swf
    {
          expires      7d; #过期时间
          access_log off; #访问日志开关
    }
	location ~ .*\.(js|css)$ #匹配.js和.css文件
    {
          expires      12h; #过期时间
          access_log off; #访问日志开关
    }

2.编写测试文件,比如图片

[root@yolks2 ~]# touch /data/wwwroot/test.com/test.jpg
[root@yolks2 ~]# ls /data/wwwroot/test.com/
admin  index.html  test.jpg

3.测试

curl -x127.0.0.1:80 test.com/test.jpg -I

查看日志:

© 著作权归作者所有

蛋黄_Yolks
粉丝 8
博文 100
码字总数 112269
作品 0
通州
私信 提问
2018-3-14 Linux学习笔记

12.10 Nginx访问日志 Nginx访问日志的格式是在主配置文件中定义的. vim /usr/local/nginx/conf/nginx.conf //搜索logformat 日志字段含义: $remoteaddr 客户端IP(公网IP) $httpxforwardedfo...

XiaoluHuang
06/28
0
0
LNMP虚拟主机操作

1.Nginx默认虚拟主机 ①编辑Nginx的主配置文件文件,删除Server相关的配置,并在http部分加入一下内容 •include vhost/*.conf; ②创建如下目录以及文件 [root@test_02 conf]# mkdir vhost...

LavenDer7n
01/07
0
0
linux复盘:构架搭建lnmp(配置)

nginx虚拟主机 vim /usr/local/nginx/conf/nginx.conf 增加include vhost/*.conf; mkdir /usr/local/nginx/conf/vhost vim /usr/local/nginx/conf/vhost/aaa.com.conf #虚拟主机配置文件 如果......

历经35天的选择
01/23
5
0
nginx访问日志-日志切割-静态文件不记录日志和过期时间

nginx访问日志: vim /usr/local/nginx/conf/nginx.conf #搜索log_format 该字段定义日志格式,默认如下: #combined_realip日志格式的名字,可随意定义; 定义访问日志: 需在虚拟主机配置文...

ZHENG-JY
08/14
0
0
Nginx访问日志、日志切割、静态文件不记录日志和过期时间

Nginx访问日志 日志格式配置 > "combined_realip"为日志格式名称;$remoteaddr $httpxforwardedfor [$time_local]'' $host "$request_uri" $status'' "$http_referer" "$http_user_agent"是日......

豆渣锅
01/04
0
0

没有更多内容

加载失败,请刷新页面

加载更多

编程新手如何更好地提问

学编程难免遇到问题,遇到问题难免要上网求助。然而有过不少同学向我诉苦,说在网上提问没有人回答,有的还收到一些不是很友好的回复。我自己也在经常上的论坛上目睹过类似的帖子。以至于有人...

crossin
8分钟前
0
0
java.util.concurrent.atomic.AtomicReference 源码

类图: 源码: package java.util.concurrent.atomic;import java.util.function.UnaryOperator;import java.util.function.BinaryOperator;import sun.misc.Unsafe;//原子变量类......

狼王黄师傅
9分钟前
0
0
20181120上课截图

小丑鱼00
10分钟前
0
0
开发中常用的JS知识点集锦

索引 1、对象深拷贝 2、网络图片转base64, 在线图片点击下载 3、对象深拷贝 4、对象深拷贝 5、对象深拷贝 6、对象深拷贝 1、对象的深拷贝(一级属性拷贝和多级属性嵌套拷贝) //深拷贝函数(...

嫣然丫丫丫
15分钟前
0
0
sql server 删除约束条件

1.最近项目用到sql server ,有这样一个场景,删除一个含有默认值的字段,对于mysql来说直接drop就可以了,但对于sql server来说,需要先删除约束条件再删除字段; 加入给user 表新增一个默认...

啊哈关关
15分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部