1.nginx的日志功能

定义nginx的访问日志显示的格式,即具体记录的客户端信息和格式。日志功能由ngx_http_log_module模块提供。

  • log_format name string ...;

    环境:http

    指定配置日志格式,

    name:为日志格式定义一个名称,用于调用;

    string:用于定义日志具体格式,可以使用nginx核心模块及其它模块内嵌的变量;

  • access_log path [format [buffer=size] [gzip[=level]] [flush=time] [if=condition]];

    环境:http、server、location、if in location、limit_except

    访问日志文件路径,格式及相关的缓冲的配置,服务器跑多个虚拟机时,建议日志分开存放;

    可以为某一个server或目录指定一个专门的访问日志文件,也可以关闭某些页面的访问日志,例如关闭状态页访问日志;

    access_log off:表示关闭日志

    path:日志文件路径

    format: log_format中定义的日志格式名称

    buffer=size :日志缓冲区大小,启用后日志文件中当时可能看不到,过一会写入后才可以显示

    flush=time:buffer多久写入一次

    gizip:压缩,要使gzip压缩工作,必须使用zlib库构建nginx

  • open_log_file_cache max=N [inactive=time] [min_uses=N] [valid=time];

    环境:http, server, location

    定义一个缓存,该缓存存储经常使用的日志的文件描述符,有助于加速读取日志。

    参数

    max:缓存的最大文件描述符数量,超出后关闭最小最近使用(LRU)描述符

    min_uses:在inactive指定的时长内访问大于等于此值方可被当作活动项,默认为1

    inactive:非活动时长,默认10s

    valid:验证缓存中各缓存项是否为活动项的时间间隔,默认60s

    off:禁用缓存

使用示例如下:

#1.定义常见的日志格式
[root@nginx01 web1]# vim /etc/nginx/nginx.conf
error_log /var/log/nginx/error.log notice;
http {
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"'; log_format combined1 '$remote_addr - $remote_user [$time_local] '
'"$request" $status $body_bytes_sent '
'"$http_referer" "$http_user_agent" '; access_log /var/log/nginx/access.log main;
include /etc/nginx/conf.d/*.conf;
} #2.在不同的location下调用日志
[root@nginx01 web1]# vim /etc/nginx/conf.d/virtualhost.conf
server {
listen 80;
server_name www.nginx01.com;
charset utf-8,gbk; location / {
root /data/nginx/html/web1;
index index.html;
} location /image {
root /data/nginx/html/web1/;
allow 172.0.0.1;
allow 192.168.20.0/24;
deny all;
access_log /var/log/nginx/access_image.log combined1;
} location ~* /(admin|login) {
root /data/nginx/html/web1;
auth_basic "please login!";
auth_basic_user_file /etc/nginx/.nginxuser;
access_log off;
}
} #3.重启nginx服务
[root@nginx01 web1]# systemctl reload nginx.service #4.客户端访问后查看日志内容
[root@xuzhichao ~]# curl http://www.nginx01.com
www.nginx01.com [root@xuzhichao ~]# curl http://www.nginx01.com/image/
image doc [root@xuzhichao ~]# curl --user user1:123456 http://www.nginx01.com/admin/
admin area [root@nginx01 ~]# tail -f /var/log/nginx/access.log
192.168.20.17 - - [17/Jun/2021:18:11:45 +0800] "GET /image/ HTTP/1.1" 200 31 "-" "curl/7.29.0" "-" [root@nginx01 ~]# tail -f /var/log/nginx/access_image.log
192.168.20.17 - - [17/Jun/2021:18:12:33 +0800] "GET /image/ HTTP/1.1" 200 10 "-" "curl/7.29.0"

nginx的默认访问日志记录的内容相对比较单一,默认的格式也不方便后期做日志统计分析,生产环境中通常将nginx日志转换成json格式,然后配合ELK做日志收集,统计,分析。例如:

log_format access_json '{ "@timestamp": "$time_iso8601", '
'"remote_addr": "$remote_addr", '
'"referer": "$http_referer", '
'"request": "$request", '
'"status": $status, '
'"bytes":$body_bytes_sent, '
'"agent": "$http_user_agent", '
'"x_forwarded": "$http_x_forwarded_for", '
'"upstr_addr": "$upstream_addr",'
'"upstr_host": "$upstream_http_host",'
'"upstreamtime": "$upstream_response_time" }';

WEB服务与NGINX(13)-NGINX的日志功能的更多相关文章

  1. flask在centos下搭建web服务【uwsgi,nginx】

    centos操作系统 uWSGI是一个web服务器,Nginx进行反向代理的其实跟这些服务器可以说没有任何关系,你提供动态内容的服务器可以是apache/nginx/tomcat,当然也可以是uWSG ...

  2. 如何为Windows服务增加Log4net和EventLog的日志功能。

    一.简介 最近在做一个项目的时候,需要该项目自动启动.自动运行,不需要认为干预.不用说,大家都知道用什么技术,那就是 Windows服务.在以前的Net Framework 平台下,Windows 服 ...

  3. Web服务图片压缩,nginx+lua生成缩略图

    背景 目前而言,用移动端访问Web站点的用户越来越多,图片对流量的消耗是比较大的,之前一个用户用我们网站的app浏览的时候,2个小时耗去了2个G的流量,这是个很严重的问题,需要对图片进行压缩,减少对用 ...

  4. Web服务器之Nginx详解(操作部分)

    大纲 一.前言 二.Nginx 安装与配置 三.Nginx 配置文件详解 四.Nginx 命令参数 五.配置Nginx提供Web服务 六.配置Nginx的虚拟主机 七.配置Nginx的用户认证 八.配 ...

  5. Linux实战教学笔记37:企业级Nginx Web服务优化实战(上)

    一,Nginx基本安全优化 1.1 调整参数隐藏Nginx软件版本号信息 一般来说,软件的漏洞都和版本有关,这个很像汽车的缺陷,同一批次的要有问题就都有问题,别的批次可能就都是好的.因此,我们应尽量隐 ...

  6. svn + nginx unit + python3自动化发布web服务方法

    本周将python web服务管理更换成nginx unit以后发现接口性能有了明显的提升,访问速度快了不少.不过有个很大的问题就是使用svn自动化发布以后,服务并没有刷新使用新的代码运行,而又不懂得 ...

  7. web服务的简单介绍及apache服务的安装

    一,web服务的作用:  是指驻留于因特网上某种类型计算机的程序,可以向浏览器等Web客户端提供文档.可以放置网站文件,让全世界浏览:   可以放置数据让全世界下载.目前最主流的三个Web服务器是Ap ...

  8. 使用uwsgi 部署python web服务

    uwsgi, wsgi协议的一个很好的实现,源码在这里:https://github.com/unbit/uwsgi c语言编写,有兴趣可以研究下. 上DEMO: wsgi_server.py def ...

  9. nginx(二)nginx的安装

    下载 nginx官网下载地址 把源码解压缩之后,在终端里运行如下命令: ./configure make make install 默认情况下,Nginx 会被安装在 /usr/local/nginx ...

  10. linux web服务基础知识,dns

    #web服务基础知识c/s 客户端/服务器b/s 浏览器/服务器 nginx   >   web  server  服务端浏览器  >    web  client  客户端 #dns解析 ...

随机推荐

  1. 【放假第1天】采购季倒计时 2G 50/年,4G 618/3年 云服务器选购攻略 阿里云 腾讯云 京东云对比 搭建网站、数据分析

    ​ 更新日期:4月4日(阿里云价格回调,京东云采购季持续进行) <最新对比表>已更新在文章头部-腾讯云文档,文章具有时效性,请以腾讯文档为准! https://docs.qq.com/do ...

  2. 在nginx中使用proxy protocol协议

    目录 简介 proxy protocol在nginx中应用 在nginx中配置使用proxy protocol 在nginx中启用proxy protocol 使用Real‑IP modules 请求 ...

  3. C# 继承、多态性、抽象和接口详解:从入门到精通

    C# 继承 在 C# 中,可以将字段和方法从一个类继承到另一个类.我们将"继承概念"分为两类: 派生类(子类) - 从另一个类继承的类 基类(父类) - 被继承的类 要从一个类继承 ...

  4. Seaborn分布数据可视化---直方图/密度图

    直方图\密度图 直方图和密度图一般用于分布数据的可视化. distplot 用于绘制单变量的分布图,包括直方图和密度图. sns.distplot( a, bins=None, hist=True, ...

  5. CRC报错查看

    前言 查看交换机接口是否有CRC报错,本案例以华三交换机为例. CRC是指循环冗余校验错 使用仪器测试链路.链路质量差或者线路光信号衰减过大会导致报文在传输过程中出错.如链路故障请更换网线或光纤. 与 ...

  6. c# 前台和后台线程

    前台和后台线程 Net的公用语言运行时(Common Language Runtime,CLR)能区分两种不同类型的线程:前台线程和后台线程.这两者的区别就是:应用程序必须运行完所有的前台线程才可以退 ...

  7. 什么是ip协议一

    前言 两节结束,为网络底层系列做铺垫. 首先来看一张图: IOS有七层,但是我们可以简化层4层,ip属于传输层,可以说是非常重要,下面简单的做一个介绍. 正文 ip的介绍: 1.ip是tcp/ip 协 ...

  8. 实训篇-Css-跳动的红心

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  9. easyx的使用

    本操作集根据B站学习,借鉴: 视频链接:[C/C++/EasyX]学编程,做游戏,小白快速入门图形编程,零基础入门到精通,学习就是这么快乐_哔哩哔哩_bilibili 初始化时要进行的操作: 记得调用 ...

  10. 剑指 Offer 58 - II(Java)-左旋转字符串(简单)

    题目: 字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部.请定义一个函数实现字符串左旋转操作的功能.比如,输入字符串"abcdefg"和数字2,该函数将返回左旋转两位 ...