Nginx教程(三) Nginx日志管理

1 日志管理

1.1 Nginx日志描述

通过访问日志,你可以得到用户地域来源、跳转来源、使用终端、某个URL访问量等相关信息;通过错误日志,你可以得到系统某个服务或server的性能瓶颈等。因此,将日志好好利用,你可以得到很多有价值的信息。

1.2 Nginx日志格式

打开nginx.conf配置文件:vim /usr/local/nginx/conf/nginx.conf

日志部分内容:

#access_log  logs/access.log  main;

日志生成的到Nginx根目录logs/access.log文件,默认使用“main”日志格式,也可以自定义格式。

默认“main”日志格式:

参数明细表:


$remote_addr


客户端的ip地址(代理服务器,显示代理服务ip)


$remote_user


用于记录远程客户端的用户名称(一般为“-”)


$time_local


用于记录访问时间和时区


$request


用于记录请求的url以及请求方法


$status


响应状态码,例如:200成功、404页面找不到等。


$body_bytes_sent


给客户端发送的文件主体内容字节数


$http_user_agent


用户所使用的代理(一般为浏览器)


$http_x_forwarded_for


可以记录客户端IP,通过代理服务器来记录客户端的ip地址


$http_referer


可以记录用户是从哪个链接访问过来的

查看日志命令tail -f /usr/local/nginx/logs/access.log

1.3 Nginx自定义日志

打开nginx.conf配置文件去掉#注释见下图:

自定义某一个server配置的日志,使用“main”日志格式。

日志生成的到Nginx根目录logs/access.log文件,默认使用“main”日志格式,也可以自定义格式。

重新读取加载Nginx配置文件:

执行命令:nginx-s reload

查看日志文件:

执行命令:tail -100f /usr/local/nginx/logs/abc.access.log

1.4 Nginx日志分隔

nginx的日志文件没有rotate功能。编写每天生成一个日志,我们可以写一个nginx日志切割脚本来自动切割日志文件。

第一步就是重命名日志文件,不用担心重命名后nginx找不到日志文件而丢失日志。在你未重新打开原名字的日志文件前,nginx还是会向你重命名的文件写日志,Linux是靠文件描述符而不是文件名定位文件。

第二步向nginx主进程发送USR1信号。nginx主进程接到信号后会从配置文件中读取日志文件名称,重新打开日志文件(以配置文件中的日志名称命名),并以工作进程的用户作为日志文件的所有者。重新打开日志文件后,nginx主进程会关闭重名的日志文件并通知工作进程使用新打开的日志文件。工作进程立刻打开新的日志文件并关闭重名名的日志文件。然后你就可以处理旧的日志文件了。[或者重启nginx服务]。

nginx日志按每分钟自动切割脚本如下:

新建shell脚本:vi/usr/local/software/nginx/nginx_log.sh

        #!/bin/bash
        #设置日志文件存放目录
        LOG_HOME="/usr/local/software/nginx/logs/"

        #备分文件名称
        LOG_PATH_BAK="$(date -d yesterday +%Y%m%d%H%M)".abc.access.log

        #重命名日志文件
        mv ${LOG_HOME}/abc.access.log ${LOG_HOME}/${LOG_PATH_BAK}.log

        #向nginx主进程发信号重新打开日志
        kill -USR1 `cat /usr/local/software/nginx/logs/nginx.pid`

创建crontab设置作业

#设置日志文件存放目录crontab -e

*/1 * * * *  sh /usr/local/software/nginx/nginx_log.sh

时间: 2024-10-14 16:02:58

Nginx教程(三) Nginx日志管理的相关文章

Nginx教程(一) Nginx入门教程

Nginx教程(一) Nginx入门教程 1 Nginx入门教程 Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like协议下发行.由俄罗斯的程序设计师IgorSysoev所开发,供俄国大型的入口网站及搜索引擎Rambler(俄文:Рамблер)使用.其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好. 1.1 Nginx下载安装 1.Nginx下载:nginx-1.13.0.tar.g

Monkey简单操作(三,日志管理)

. monkey日志管理 adb shell monkey –v –v 100 >d:\monkeylog.log保存到本地要保存在手机的话,首先需要进入adb shell然后在运行monkey +目标路径(通常在sdcard下保存)错误流和标准流日志文件分开保存:adb shell monkey –v 100 1>d:\monkey.log 2>d:\error.log1表示标准流,2表示错误流(错误信息) 不管是在项目开发还是测试过程中,项目运行一旦出现问题日志信息就非常重要了.日志

Nginx教程(五) Nginx配置文件详解

Nginx配置文件nginx.conf中文详解 ######Nginx配置文件nginx.conf中文详解##### #定义Nginx运行的用户和用户组 user www www; #nginx进程数,建议设置为等于CPU总核心数. worker_processes 8; #全局错误日志定义类型,[ debug | info | notice | warn | error | crit ] error_log /usr/local/nginx/logs/error.log info; #进程pi

nginx学习三 nginx配置项解析详解及代码实现

nginx配置项解析详解及代码实现 0回顾 在上一节,用nginx简单实现了一个hello world程序:当我们在浏览器中输入lochost/hello ,浏览器就返回:hello world.为什么会这样呢,简单一点说就是当我们请求访问hello这个服务,nginx就会看配置文件中是否有,如果有,根据具体的handler处理后把处理的结果返回给用户,没有就返回not found. location /hello { test_hello ;//无参数的配置 这其实是一个简单的配置.这节我们来

CentOS7.4—Apache优化应用二(日志管理)

Apache优化应用二(日志管理)目录第一部分 准备工作第二部分 安装Apache服务第三部分 日志管理一(配置日志分割)第四部分 日志管理二(配置Awstats日志分析软件) 第一部分 准备工作一:服务器:Linux系统-CentOS 7.4:IP地址:192.168.80.10 客户端:以WIN7为例,测试验证结果,与服务器在同一网段:IP地址:192.168.80.2 二:准备压缩包 //apr-1.6.2.tar.gz和apr-util-1.6.0.tar.gz是httpd2.4以后的版

第十三章 日志管理及安全

一.日志文件说明日志的功能 用于记录系统.程序运行中发生的各种事件通过阅读日志,有助于诊断和解决系统故障日志文件的分类内核及系统日志由系统服务syslog统一进行管理,日志格式基本相似用户日志记录系统用户登录及退出系统的相关信息程序日志由各种应用程序独立管理的日志文件,记录格式不统一日志的功能 用于记录系统.程序运行中发生的各种事件通过阅读日志,有助于诊断和解决系统故障日志文件的分类内核及系统日志由系统服务syslog统一进行管理,日志格式基本相似用户日志记录系统用户登录及退出系统的相关信息程序

Nginx(三)-- 配置文件之日志管理

1.日志文件的默认存放位置 默认的日志文件存放位置在:nginx/logs/ 文件夹下,logs文件夹下有:access.log   error.log   nginx.pid 文件 2.nginx.conf 中的日志 配置 nginx.conf中是将日志文件的配置注释掉的,如下: #access_log  logs/host.access.log  main; 日志声明     路径及文件名     日志标识 $remote_addr 与$http_x_forwarded_for 用以记录客户

【Nginx系列】Nginx虚拟主机的配置核日志管理

Nginx配置段 #user nobody; worker_processes 1;// 有1个工作的子进程,可以自行修改,但太大无益,因为要争夺CPU,一般设置为 CPU数*核数 #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; #pid logs/nginx.pid; events {// 一般是配置nginx连接的特性 如1个word能同时允许多少连接 w

nginx之旅(第二篇):nginx日志管理、nginx防盗链、nginx虚拟主机

一.nginx日志管理 Nginx访问日志主要有两个参数控制 1) log_format #用来定义记录日志的格式(可以定义多种日志格式,取不不同名字即可) log_format log_name string 2) access_log #用来指定日至文件的路路径及使用的何种日志格式记录日志 access_log logs/access.log main; log_format格式变量含义: 字段 含义 remote_addr 客户端地址 remote_user 客户端用户名 time_loc