文档章节

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
博文 98
码字总数 109902
作品 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
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
Nginx访问日志、日志切割、静态文件不记录日志和过期时间

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

豆渣锅
01/04
0
0
LNMP架构搭建与优化

1,1php编译与安装 LAMP apache、mysql、php LNMP nginx、mysql、php mysql的安装与LAMP的mysql安装方法一样 先安装mysql再安装php cd /usr/local/src wget http://cn2.php.net/distributio......

vincenthome
2017/07/05
0
0

没有更多内容

加载失败,请刷新页面

加载更多

关于编程,你的练习是不是有效的?

最近由于工作及Solution项目的影响,我在重新学习DDD和领域建模的一些知识。然后,我突然就想到了这个问题,以及我是怎么做的? 对于我来说,提升技能的项目会有四种: 纯兴趣驱动的项目。即...

问题终结者
36分钟前
1
0
打开eclipse出现an error has occurred see the log file

解决方法: 1,打开eclipse安装目录下的eclipse.ini文件; 2,打开的文本文件最后添加一行 --add-modules=ALL-SYSTEM 3,保存重新打开Eclipse。...

任梁荣
昨天
4
0
搞定Northwind示例数据库,无论哪个版本的SQLServer都受用

Northwind数据库 从这里可以找到突破口: http://social.msdn.microsoft.com/Forums/zh-CN/Vsexpressvb/thread/8490a1c6-9018-40c9-aafb-df9f79d29cde 下面是MSDN: http://msdn2.microsoft......

QQZZFT
昨天
1
0
mysql主从同步,安装配置操作

准备 两台mysql服务,我这里准备了如下: 主库:192.168.176.128 从库:192.168.176.131 如何在Linux上安装mysql服务,请看https://blog.csdn.net/qq_18860653/article/details/80250499 操作...

小致dad
昨天
4
0
Redis的“死键”问题

大规模的数据库存储系统中,数据的生命周期管理是很有必要的;从业务角度发现过期数据,数据归档和数据碎片整理等。以MySQL为例,1个运行很久的TB级MySQL实例中,极有可能数百GB的数据,对业...

IT--小哥
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部