WEB服务与NGINX(13)-NGINX的日志功能
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的日志功能的更多相关文章
- flask在centos下搭建web服务【uwsgi,nginx】
centos操作系统 uWSGI是一个web服务器,Nginx进行反向代理的其实跟这些服务器可以说没有任何关系,你提供动态内容的服务器可以是apache/nginx/tomcat,当然也可以是uWSG ...
- 如何为Windows服务增加Log4net和EventLog的日志功能。
一.简介 最近在做一个项目的时候,需要该项目自动启动.自动运行,不需要认为干预.不用说,大家都知道用什么技术,那就是 Windows服务.在以前的Net Framework 平台下,Windows 服 ...
- Web服务图片压缩,nginx+lua生成缩略图
背景 目前而言,用移动端访问Web站点的用户越来越多,图片对流量的消耗是比较大的,之前一个用户用我们网站的app浏览的时候,2个小时耗去了2个G的流量,这是个很严重的问题,需要对图片进行压缩,减少对用 ...
- Web服务器之Nginx详解(操作部分)
大纲 一.前言 二.Nginx 安装与配置 三.Nginx 配置文件详解 四.Nginx 命令参数 五.配置Nginx提供Web服务 六.配置Nginx的虚拟主机 七.配置Nginx的用户认证 八.配 ...
- Linux实战教学笔记37:企业级Nginx Web服务优化实战(上)
一,Nginx基本安全优化 1.1 调整参数隐藏Nginx软件版本号信息 一般来说,软件的漏洞都和版本有关,这个很像汽车的缺陷,同一批次的要有问题就都有问题,别的批次可能就都是好的.因此,我们应尽量隐 ...
- svn + nginx unit + python3自动化发布web服务方法
本周将python web服务管理更换成nginx unit以后发现接口性能有了明显的提升,访问速度快了不少.不过有个很大的问题就是使用svn自动化发布以后,服务并没有刷新使用新的代码运行,而又不懂得 ...
- web服务的简单介绍及apache服务的安装
一,web服务的作用: 是指驻留于因特网上某种类型计算机的程序,可以向浏览器等Web客户端提供文档.可以放置网站文件,让全世界浏览: 可以放置数据让全世界下载.目前最主流的三个Web服务器是Ap ...
- 使用uwsgi 部署python web服务
uwsgi, wsgi协议的一个很好的实现,源码在这里:https://github.com/unbit/uwsgi c语言编写,有兴趣可以研究下. 上DEMO: wsgi_server.py def ...
- nginx(二)nginx的安装
下载 nginx官网下载地址 把源码解压缩之后,在终端里运行如下命令: ./configure make make install 默认情况下,Nginx 会被安装在 /usr/local/nginx ...
- linux web服务基础知识,dns
#web服务基础知识c/s 客户端/服务器b/s 浏览器/服务器 nginx > web server 服务端浏览器 > web client 客户端 #dns解析 ...
随机推荐
- Selenium 八大元素定位方式
UI自动化测本质无非就是: 定位元素 -> 操作元素 -> 模拟页面动作 -> 断言结果 -> 生成测试报告. 所以我们做UI自动化的第一步就是定位元素,如果连元素都定位不到就 ...
- C#中十进制转与二进制相互转换
将十进制转换为二进制 将二进制转换为十进制
- Elasticjob 3.x 最新版本源码解读(含备注源码)
源码地址(含备注):https://gitee.com/ityml/elastic-job-zgc 官方网站: https://shardingsphere.apache.org/elasticjob ...
- HarmonyOS SDK开放能力,服务鸿蒙生态建设,打造优质应用体验
华为开发者大会2023(HDC.Together)于8月4日至6日在东莞松山湖举行,在HarmonyOS端云开放能力技术分论坛上,华为为广大开发者们介绍了HarmonyOS SDK开放能力在基础开发架 ...
- UE4中HTC Vive 手柄如何抓取物体
想知道 HTC Vive 手柄如何抓取物体? HTC Vive 的手柄有许多功能,在游戏里你可以用手柄射箭,可以用手柄拾取木棍等等,但是这些是如何设置的呢?来看看我们的公开课教程吧. 本期教程为上半部 ...
- js es6 delete
前言 首先delete 不同于nodejs delete,看下有什么不同. 正文 var test=5; delete test; console.log(test); 结果是test没有受到任何影响 ...
- c# ManualResetEventSlim
前言 后续会把异步编程的ManualResetEventSlim 深入写完,先简单介绍一下吧. ManualResetEventSlim 有set 方法和 reset .wait.dispose方法. ...
- Trino418版本动态加载catalog不需要重启集群修改思路及实现2
原来没事的时候改了一个这样的功能,当时也没有仔细研究,后来也没继续弄.详细可以参考 https://www.cnblogs.com/liuzx8888/p/17635913.html 当时有1个问题: ...
- RC4Drop加密技术:原理、实践与安全性探究
第一章:介绍 1.1 加密技术的重要性 加密技术在当今信息社会中扮演着至关重要的角色.通过加密,我们可以保护敏感信息的机密性,防止信息被未经授权的用户访问.窃取或篡改.加密技术还可以确保数据在传输过程 ...
- 登录chatgpt的时候出现429的解决方法,亲测有效
登录chatgpt的时候出现429的解决方法 PS:在2023年3月14日晚还是可以用的,亲测有效 登录chatgpt的时候出现429的解决方法 很多时候在国内用代理进入chatgpt的时候会出现42 ...