Nginx按指定格式记录访问日志

今天突然想起来一个日志的一个东西,因为拉项目无意中看到了日志文件的一些东西,现在不经常做后端了,加上其他的一些原因吧.有时候有些问题也没想太多,马马虎虎就过了,后来想想还是要记录一下这方面的处理过程吧: 

一般我们作为开发人员关注的日志只是在应用程序层面的,我们称它为应用程序日志,访问日志和错误日志可以被认为是应用程序日志的一部分,因为它们都与应用程序的运行状态和用户访问行为有关。

访问日志:

其实我们在用常用的web服务器上都有这项功能,我们这里用Nginx举例,我们的访问日志一般正常都是什么设备在什么地址访问了我们的什么资源,后端服务器的响应时间是多少,客户端请求处理的总时间是多少;请求使用的 HTTP 方法等等,常见的基本上就上面的这些了,那我们就可以在Nginx的HTTP块里面设置日志记录参数就行了,比如下面的配置:

http {### Basic Settings##sendfile on;tcp_nopush on;types_hash_max_size 2048;# server_tokens off;# server_names_hash_bucket_size 64;# server_name_in_redirect off;include /etc/nginx/mime.types;default_type application/octet-stream;### SSL Settings##ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3; # Dropping SSLv3, ref: POODLEssl_prefer_server_ciphers on;### Logging Settings##log_format main '$remote_addr | $remote_user | [$time_local] | "$request" '' | $status $body_bytes_sent | "$http_referer" ''| "$http_user_agent" | "$http_x_forwarded_for" | "$request_method" | request_total_time:"$request_time" | "$upstream_response_time"';access_log /var/log/nginx/access.log main;error_log /var/log/nginx/error.log;### Gzip Settings##gzip on;# gzip_vary on;# gzip_proxied any;# gzip_comp_level 6;# gzip_buffers 16 8k;# gzip_http_version 1.1;# gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;### Virtual Host Configs##include /etc/nginx/conf.d/*.conf;include /etc/nginx/sites-enabled/*;
}

首先我们肯定先把访问日志打开(access_log),然后阐述一下上面的参数:

  1. $remote_addr:代表发起请求的客户端的IP地址。

  2. $remote_user:代表经过身份验证的用户的用户名,如果没有身份验证则为连字符(-)。

  3. [$time_local]:代表服务器处理请求时的本地时间,用方括号括起来。

  4. "$request":代表请求的第一行,包括HTTP方法、请求的URL和HTTP协议。

  5. |:是一个分隔符(管道符号),用于在日志条目中分隔不同的字段。

  6. $status:代表返回给客户端的状态码(例如,成功请求的状态码为200)。

  7. $body_bytes_sent:代表发送给客户端的响应的大小,以字节为单位。

  8. "$http_referer":代表Referer HTTP头部,指示引导客户端访问当前页面的页面的URL。

  9. "$http_user_agent":代表User-Agent HTTP头部,指示发起请求的客户端的用户代理(例如,浏览器)。

  10. "$http_x_forwarded_for":代表X-Forwarded-For HTTP头部,如果请求经过代理服务器或负载均衡器,则可能包含一个逗号分隔的客户端IP地址列表。

  11. "$request_method":代表请求中使用的HTTP方法(例如,GET、POST)。

  12. request_total_time:"$request_time":代表处理请求所花费的总时间,包括上游处理时间。数值被双引号括起来。

然后我们重启一下Nginx 服务器,再去请求就可以看到日志 文件已经陆续写入了:看一下效果

你会看到access.log已经开始记录了,那如果我们每每天都会有大量的记录放在同一个文件会不会时间就了会很臃肿这个文件,至于这个问题你可以用 logrotate 日志轮转操作去解决, 这边我用了小时级别的划分,每隔一个小时都会轮转一下;

/var/log/nginx/*.log {hourlymissingokrotate 14compressdelaycompressnotifemptycreate 0640 www-data admsharedscriptsprerotateif [ -d /etc/logrotate.d/httpd-prerotate ]; then \run-parts /etc/logrotate.d/httpd-prerotate; \fi \endscriptpostrotateinvoke-rc.d nginx rotate >/dev/null 2>&1endscript
}
~                        

所以你会看到很多access.log文件,

关于logrotate后面会更新 ,学过linux的应该都知道这个玩意,很方便的程序,基本也是Linux的预装程序,时间有点夜深了,先写到这里

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/208550.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LSTM_预测价格问题_keras_代码实操

0、问题描述 使用Bicton数据集,对close数据进行预测,使用60个数据点预测第61个数据点。 下载数据集:Bitcoin Historical Data 前期已经使用了MLP和RNN进行预测:这里 1、 没有写完,明天再写:)…

POJ 3735 Training little cats 动态规划(矩阵的幂)

一、题目大意 我们有N只猫&#xff0c;每次循环进行K次操作&#xff08;N<100&#xff0c;K<100&#xff09;&#xff0c;每次操作可有以下三种选择&#xff1a; 1、g i 给第i只猫1个食物 2、e i 让第i只猫吃完它所有的食物 3、s i j 交换第i和j只猫的食物。 求出M次…

JS自己定义数组扩展方法 求和 和 最大值、最小值

相信有小伙伴看到这一个标题可能会想&#xff1a;现在都可以自己写方法了吗&#xff1f;这么炸裂。没错我们是可以自己写方法的。 1.我们定义的这个方法&#xff0c;任何一个数组实例对象都可以使用 2.自定义的方法写到 数组.propertype身上 最大值 const arr [1,2,3,4]Array…

销售技巧培训之如何提高手机销售技巧

销售技巧培训之如何提高手机销售技巧 随着科技的迅速发展&#xff0c;手机已成为我们日常生活中不可或缺的一部分。作为一名手机销售员&#xff0c;了解手机销售技巧是必不可少的。本文将通过案例分析与实践&#xff0c;为你揭示手机销售的奥秘。 一、了解客户需求 在销售过程…

AWS Remote Control ( Wi-Fi ) on i.MX RT1060 EVK - 3 “编译 NXP i.MX RT1060”( 完 )

此章节叙述如何修改、建构 i.MX RT1060 的 Sample Code“aws_remote_control_wifi_nxp” 1. 点击“Import SDK example(s)” 2. 选择“MIMXRT1062xxxxA”>“evkmimxrt1060”&#xff0c;并确认 SDK 版本后&#xff0c;点击“Next>” 3. 选择“aws_examples”>“aw…

在 Docker 容器中运行 macOS:接近本机性能,实现高效运行 | 开源日报 No.96

cxli233/FriendsDontLetFriends Stars: 2.6k License: MIT 这个项目是关于数据可视化中好的和不好的实践&#xff0c;作者通过一系列例子解释了哪些图表类型是不合适的&#xff0c;并提供了如何改进或替代它们。主要功能包括展示错误做法以及正确做法&#xff0c;并提供相应代…

【数值计算方法(黄明游)】解线性代数方程组的迭代法(一):向量、矩阵范数与谱半径【理论到程序】

文章目录 一、向量、矩阵范数与谱半径1、向量范数a. 定义及性质补充解释范数差 b. 常见的向量范数 l 1 l_1 l1​、 l 2 l_2 l2​、 l ∞ l_\infty l∞​ 范数性质关系 2、矩阵范数a. 矩阵的范数b. 常见的矩阵范数相容范数算子范数 3、谱半径4、知识点总结1. 向量范数2. 矩阵范数…

Mybatis XML 多表查询

这篇需结合 <<Mybatis XML 配置文件>>那一篇博客一起看 工作中尽量避免使用多表查询,尤其是对性能要求非常高的项目 我们之前建了个用户表(代码在Mybatis XML配置文件那篇博客里),这次再建一个文章表,代码如下 : -- 创建⽂章表 DROP TABLE IF EXISTS articleinf…

vue中组件传值方法

父组件给子组件传值 一、 1.在子组件标签中写入父组件传递数据 向下传递prop 2.在子组件内声明props选项接收父组件传递的数据 props:[,,] 父组件&#xff1a; <Header :msgmsg ></Header> 子组件&#xff1a; props:[msg], 二、 provide i…

vue 批量下载文件,不走后端接口的方法

今天ld提了一个需求&#xff0c;说页面的列表里面有要下载的地址,然后点击批量下载。我思索片刻&#xff0c;给出了代码 1.这个是列表页面的代码 <!-- 这个是列表页面的代码 --> <el-table :data"userListShow" align"center"border highlight-…

AI 训练框架:Pytorch TensorFLow MXNet Caffe ONNX PaddlePaddle

https://medium.com/jit-team/bridge-tools-for-machine-learning-frameworks-3eb68d6c6558

基于jsonrpc4j实现JSON-RPC over HTTP(服务端集成Spring Boot)

1.JSON-RPC说明 JSON-RPC是一个无状态且轻量级的远程过程调用(RPC)协议。 它主要定义了一些数据结构及其相关的处理规则。 它运行时可以基于tcp(socket),http等不同的消息传输方式&#xff0c; 即它不关心底层传输方式的细节。 它使用JSON&#xff08;RFC 4627&#xff09;作为…

Tabbar切换效果(vant)

route 是否开启路由模式 <template><div class"layout-page"><!-- 二级路由出口 --><router-view></router-view><van-tabbar route><van-tabbar-item to"/home">首页<!-- 图标切换为active是高亮 -->&…

网络知识点之-组播协议

组播协议&#xff0c;是一种允许将一台主机发送的数据通过网络路由器和交换机复制到多个加入此组播的主机&#xff0c;一对多的通讯方式。 简介 组播协议与广泛使用的单播协议的不同之处在于&#xff0c;一个主机用单播协议向n个主机发送相同的数据时&#xff0c;发送主机需要…

Git全局设置命令---设置提交人邮箱

介绍 使用git命令设置提交人邮箱。 命令 git config --global user.email "xxxxxxxx.com"

JAVA实现敏感词高亮或打码过滤:sensitive-word

练手项目中实现发表文章时检测文章是否带有敏感词&#xff0c;以及对所有敏感词的一键过滤功能 文章目录 效果预览实现步骤 效果预览 随便复制一篇内容到输入框 机器审核文章存在敏感词&#xff0c;弹消息提示并进入人工审核阶段&#xff08;若机器审核通过&#xff0c;则无需审…

eclipse的日志文件放在什么位置

eclipse的日志文件放在<workspace的目录>/.metadata目录下面&#xff0c;例如&#xff1a;

html中一个div中平均一行分配四个盒子,可展开与收起所有的盒子

html中一个div中平均一行分配四个盒子&#xff0c;可展开与收起所有的盒子 1.截图显示部分 2.代码展示部分 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"wid…

pytorch中五种常用随机矩阵构造方法:rand、randn、randn_like、randint、randperm

1 torch.rand&#xff1a;构造均匀分布张量 torch.rand是用于生成均匀随机分布张量的函数&#xff0c;从区间[0,1)的均匀分布中随机抽取一个随机数生成一个张量&#xff0c;其调用方法如下所示&#xff1a; torch.rand(sizes, outNone) ➡️ Tensor 参数&#xff1a; sizes&…

12.8_黑马数据结构与算法笔记Java

目录 044 递归 e04 冒泡排序2 044 递归 e05 插入排序1 044 递归 e05 插入排序2 045 多路递归 斐波那契 046 多路递归 斐波那契 时间复杂度 047 多路递归 斐波那契 兔子问题 048 多路递归 斐波那契 青蛙跳台阶 049 递归 优化 记忆法 050 递归 爆栈问题 051 递归 尾调用…