nginx(四)初识nginx日志文件

nginx 日志相关指令主要有两条,一条是log_format,用来设置日志格式,另外一条是access_log,用来指定日志文件的存放路径、格式和缓存大小,通俗的理解就是先用log_format来定义自己想用的日志格式,然后在用zccess_log定义虚拟主机时或全局日志时 在把定义的log_format 跟在后面;

1、log_format 格式

log_format       name( 格式名字)  格式样式(即想要得到什么样的日志内容)

默认的示例:

log_format     main               ‘$remote_addr - $remote_user [$time_local] "$request" ‘
                                              ‘$status $body_bytes_s ent "$http_referer" ‘
                                              ‘"$http_user_agent" "$http_x_forwarded_for"‘

注释:

$remote_addr   与$http_x_forwarded_for 用以记录客户端的ip地址;

$remote_user   :用来记录客户端用户名称;

$time_local  : 用来记录访问时间与时区;

$request  :  用来记录请求的url与http协议;

$status     :  用来记录请求状态;成功是200,

$body_bytes_s ent  :记录发送给客户端文件主体内容大小;

$http_referer  :用来记录从那个页面链接访问过来的;

$http_user_agent  :记录客户毒啊浏览器的相关信息;

通常web服务器放在反向代理的后面,这样就不能获取到客户的IP地址了,通过$remote_add拿到的IP地址是反向代理服务器的iP地址。反向代理服务器在转发请求的http头信息中,可以增加x_forwarded_for信息,用以记录原有客户端的IP地址和原来客户端的请求的服务器地址;

log_format     mylogformat     ‘ $http_x_forwarded_for- $remote_user [$time_local] ‘

‘ "$request"   ‘$status $body_bytes_s ent ‘

‘ "$http_referer" "$http_user_agent" ‘;

上面这个是涨宴老师的日志例子;

2、用access_log指令日志文件存放路径;

用了log_format 指令设置了日志格式之后,需要用access_log指令指定日志文件的存放路径;

access_log        path(存放路径)                   format (自定义日志名称)

示例:

#access_log             logs/access.log              main;

我们用log_format 定义了一个mylogformat的日志 我们可以写成这样

access_log             logs/access.log         mylogformat ;

如果不想启用日志 :

access_log off ;

在定义日志目录中要注意的是,nginx进程设置的用户和组必须有对该路径 创建文件的权限,假设nginx的usr指令设置的用户名 和用户组都是www,而logs 目录的用户名和组是root,那么日志文件将无法被创建;

3、nginx日志文件的切割:

[[email protected] logs]# ll
总计 48
-rw-r--r-- 1 root root  1891 09-02 14:59 192.168.0.28.access.log
-rw-r--r-- 1 root root   531 09-02 13:52 192.168.0.37.access.log
-rw-r--r-- 1 root root   531 09-02 13:52 192.168.0.38.access.log

[[email protected] logs]# mv 192.168.0.28.access.log /tmp/nginx.28.log

[[email protected] logs]# kill -USR1 `cat /usr/local/nginx/logs/nginx.pid `

[[email protected] logs]# ll
总计 36
-rw-r--r-- 1 nginx root     0 09-02 15:05 192.168.0.28.access.log
-rw-r--r-- 1 nginx root   531 09-02 13:52 192.168.0.37.access.log
-rw-r--r-- 1 nginx root   531 09-02 13:52 192.168.0.38.access.log

先把日志拷贝出来,然后想nginx发送信号 ,让nginx重新生成一个日志文件;

 4、nginx的压缩输出配置

nginx的压缩输出由一组压缩指令来实现,gzip的压缩输出位于http {......}两个大括号之间;

gzip on;
  gzip_min_length  1k;
  gzip_buffers     416k;
  gzip_http_version 1.1;
  gzip_comp_level 2;
  gzip_types       text/plain application/x-javascript text/css application/xml;
  gzip_vary on;

5、nginx自动列目录配置;

可以在 某一虚拟主机的location /{......}
目录中配置自动列目录,加上下面代码:

location  . {

autoindex on;

autoindex_exact_size  [on |off]     #设定索引时文件大小的单位

autoindex_localtime  [on |off ]   #开启以本地时间来显示文件时间的功能,默认为关

}

时间: 2024-11-07 14:10:00

nginx(四)初识nginx日志文件的相关文章

NGINX按天生成日志文件的简易配置

NGINX按天生成日志文件的简易配置 0x01 最近后端童鞋遇到一个小需求,拆分nginx生成的log文件,最好是按天生成,看着她还有很多bug待改的状态,我说这个简单啊,我来吧.曾经搞node后端的时候,这些东西都so easy的,我还记得当时用log4js,几行配置文件就能搞定,现在就算是直接配置nginx应该也不会特别麻烦. 0x02 先说一下项目的大概架构.整个项目采用docker部署,一共三个container,一个getaway负责整个服务的网络转发,然后就是一个backend和fr

【Linux】【Web】【Nginx】配置nginx日志到远程syslog服务器

1. 概述: 主要是用于吧nginx的日志直接传送到远程日志收集的服务器上.远程日志服务器只要能够支持syslog协议都能够收到日志,本文的syslog服务器是IBM的日志收集系统Qradar. 2. 环境: OS:Red Hat Enterprise Linux Server release 6.7 (Santiago) Kernel:Linux cftjnginx01.homecredit.cn 2.6.32-573.el6.x86_64 #1 SMP Wed Jul 1 18:23:37

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根目录lo

用nginx指定访问tomcat日志

老大让我在nginx+tomcat的环境中满足以下需求: nginx指向某个页面,此页面内容包含了tomcat服务器中的各种日志文件 点击某日志文件后,即可显示该日志文件的内容 操作前的准备 安装并搭建好nginx,tomcat 一日志文件 我们知道,tomcat的日志文件在/tomcat/logs目录下 ls catalina.2016-03-04.log  host-manager.2016-03-04.log  localhost.2016-03-05.log           loca

Nginx 基本配置和日志分析

最近在维护的一个项目,路由转发规则都统一通过Nginx转发,所以再次参考部分博文和书本,熟悉Nginx的基本配置,还有一个重点也是日志的分析 Nginx 常用模块是server块,location块. 常用的location块配置: 语法规则: location [=|~|~*|^~] /uri/ { … } = 表示精确匹配,这个优先级也是最高的 ^~ 表示uri以某个常规字符串开头,理解为匹配 url路径即可.nginx不对url做编码,因此请求为/static/20%/aa,可以被规则^~

部署LNMP Nginx+FastCGI 、 Nginx高级技术

案例1:部署LNMP环境案例2:构建LNMP平台案例3:地址重写1 案例1:部署LNMP环境1.1 问题 安装部署Nginx.MariaDB.PHP环境安装部署Nginx.MariaDB.PHP.PHP-FPM:启动Nginx.MariaDB.FPM服务:并测试LNMP是否工作正常.1.2 方案 在RHEL7系统中,源码安装Nginx,使用RPM包安装MariaDB.PHP.PHP-FPM软件.操作过程中需要安装的软件列表如下:nginxmariadb.mariadb-server.mariad

日志文件配置与切割

日志文件配置与切割 自定义日志格式 http { server { listen          80 default; server_name     _*; access_log      logs/default.access.log combined; location / { index index.html; root  /data0/htdocs/htdocs; } } } 其中的  access_log,就是用来配置日志路径的, log_format 指令用于设置日志格式 如果

python 按照日期切分大日志文件(重点)和按照指定大小切分日志文件

#! /usr/bin/env python # -*- coding:utf8 -*- # 切分nginx 按照日期切分日志文件 from __future__ import division import os,sys big_file='/data/logs/media.net.error.log' # 按照文件大小拆分 def split_by_filesize(fromfile,todir,chunksize=0): """ chunksize: 字节建议每100M

【恢复】Redo日志文件丢失的恢复

第一章 Redo文件丢失的恢复 1.1  online redolog file 丢失 联机Redo日志是Oracle数据库中比较核心的文件,当Redo日志文件异常之后,数据库就无法正常启动,而且有丢失据的风险,强烈建议在条件允许的情况下,对Redo日志进行多路镜像.需要注意的是,RMAN不能备份联机Redo日志文件.所以,联机Redo日志一旦出现故障,则只能进行清除日志了.清除日志文件即表明可以重用该文件. 1.1.1  数据库归档/非归档模式下inactive redo异常ORA-00316