nginx变量自定义日志收集

内置变量

$remote_addr;存放了客户端的地址,注意是客户端的公网IP,也就是一家人访问一个网站,则会显示为路由器的公网IP。

$args;变量中存放了URL中的指令

[root@localhost conf.d]# cat pc.conf 
server {listen 80;server_name www.fxq.com;location / {root /data/nginx/html/pc;index index.html;}location /m78 {default_type text/html;echo $remote_addr;echo $args;}  
}

 

我这边电脑与服务器之间的网段做了路由,显示了网关

$document_root;    保存了针对当前资源的请求的系统根目录

$document_uri;      保存了当前请求中不包含指令的URI

[root@localhost conf.d]# cat pc.conf 
server {listen 80;server_name www.fxq.com;location / {root /data/nginx/html/pc;index index.html;}location /m78 {root /data/nginx/html/pc;default_type text/html;echo $document_root; echo $document_uri;}  
}

 $host; 存放了请求的host名称

 $http_user_agent; 客户端浏览器的详细信息

 $http_cookie;客户端的cookie信息。

[root@localhost conf.d]# cat pc.conf 
server {listen 80;server_name www.fxq.com;location / {root /data/nginx/html/pc;index index.html;}location /m78 {root /data/nginx/html/pc;default_type text/html;echo  $host;echo  $http_user_agent;echo  $http_cookie;}  }

 limit_rate 10240;
echo $limit_rate;如果nginx服务器使用limit_rate配置了显示网络速率,则会显示,如果没有设置, 则显示0

 $remote_user; 已经过Auth Basic Module验证的用户名。

 $request_body_file;做反向代理时发给后端服务器的本地资源的名称。

 $request_method;请求资源的方式,GET/PUT/DELETE等

 $request_filename;当前请求的资源文件的路径名称,由root或alias指令与URI请求生成的文件绝对路径

 $request_uri;包含请求参数的原始URI,不包含主机名

 $scheme;请求的协议,如ftp,https,http等;

 $server_protocol;保存了客户端请求资源使用的协议的版本,如HTTP/1.0,HTTP/1.1,HTTP/2.0等

 $server_addr;保存了服务器的IP地址;

 $server_name;请求的服务器的主机名。

 $server_port;请求的服务器的端口号。

自定义变量

使用set自定义变量

[root@localhost conf.d]# cat pc.conf 
server {listen 80;server_name www.fxq.com;location / {root /data/nginx/html/pc;index index.html;}location /m78 {root /data/nginx/html/pc;default_type text/html;set $name fxq;echo $name;
}  }

 

日志格式     

默认格式   

                                              

自定义json格式

    log_format access_json '{"@timestamp":"$time_iso8601",''"host":"$server_addr",''"clientip":"$remote_addr",''"size":$body_bytes_sent,''"responsetime":$request_time,''"upstreamtime":"$upstream_response_time",''"upstreamhost":"$upstream_addr",''"http_host":"$host",''"uri":"$uri",''"domain":"$host",''"xff":"$http_x_forwarded_for",''"referer":"$http_referer",''"tcp_xff":"$proxy_protocol_addr",''"http_user_agent":"$http_user_agent",''"status":"$status"}';access_log  logs/access.log  access_json;

 python日志收集

#!/usr/bin/env python
#coding: utf-8 
status_200=[]
status_404=[]
with open("/apps/nginx/logs/access.log") as f:for line in f.readlines():line = eval(line)if line.get("status") == "200":status_200.append(line.get)elif line.get("status") == "404":status_404.append(line.get)else:print("状态码 ERROR")
f.close()
print "状态码200的有--:",len(status_200)
print "状态码404的有--:",len(status_404)

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

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

相关文章

C++20:方向之争 C++20 特性 模块 协程 无栈协程 编译期 计算支持 静态反射 模式匹配

C++20:方向之争 C++20作为C++语言的一个新标准,带来了许多新的特性和改进,同时也引发了一些关于发展方向的争议。这些争议主要集中在如何平衡语言的复杂性、性能、易用性以及与其他编程语言和技术的集成等方面。 首先,C++20引入了一些新的语言特性和库,如concepts(概念…

推荐系统的技术栈

推荐系统的技术栈 推荐系统是一个非常大的框架,有非常多的模块在里面,完整的一套推荐系统体系里,不仅会涉及到推荐算法工程师、后台开发工程师、数据挖掘/分析工程师、NLP/CV工程师还有前端、客户端甚至产品、运营等支持。我们作为算法工程师…

调教AI给我写了一个KD树的算法

我不擅长C,但是目前需要用C写一个KD树的算法。首先我有一份点云数据,需要找给定坐标范围0.1mm内的所有点。 于是我开始问AI,他一开始给的答案,完全是错误的,但是我一步步给出反馈,告诉他的问题,…

nuxt3使用记录六:禁用莫名其妙的Tailwind CSS(html文件大大减小)

发现这个问题是因为,今天我突然很好奇,我发现之前构建的自动产生的200.html和404.html足足290k,怎么这么大呢?不是很占用我带宽? 一个啥东西都没有的静态页面,凭啥这么大!所以我就想着手动把他…

ThinkPHP--5.0.23-rce远程代码执行

一、漏洞原理 实现框架的核心类Requests的method方法实现表单请求类伪装,默认为$_POST[‘_method’]变量,却没有对_method属性进行严格校验,可以通过变量覆盖Requests类的属性,在结合框架特性实现对任意函数的调用实现任意代码执…

Linux shell编程学习笔记48:touch命令

0 前言 touch是csdn技能树Linux基础练习题中最常见的一条命令,这次我们就来研究它的功能和用法。 1. touch命令的功能、格式和选项说明 我们可以使用命令 touch --help 来查看touch命令的帮助信息。 purpleEndurer bash ~ $ touch --help Usage: touch [OPTION]…

idm线程怎么设置 idm线程数怎么上不去 idm免安装

IDM(Internet Download Manager)是一款流行的下载管理软件,IDM采用高级的多线程下载技术,可以将下载文件分成多个部分同时下载,从而提高下载速度,它因高效的下载速度和丰富的功能而受到用户的喜爱。接下来&…

MVC和DDD的贫血和充血模型对比

文章目录 架构区别MVC三层架构DDD四层架构 贫血模型代码示例 充血模型代码示例 架构区别 MVC三层架构 MVC三层架构是软件工程中的一种设计模式,它将软件系统分为 模型(Model)、视图(View)和控制器(Contro…

一个5000刀的XSS

背景介绍 今天分享国外一个白帽小哥Crypto通过发现Apple某网站XSS而获得5000美元赏金的故事。废话不多说,让我们开始吧~ 狩猎过程 易受攻击的 Apple 服务网站是:https://discussions.apple.com,该服务是苹果用户和开发者讨论问题…

JavaScript的数据类型转换

转化为string类型: 方法说明转换对象.tostring()转换成字符串string(转换对象)转换成字符串加号拼接字符串和字符串拼接后的结果是字符串 转化为数字性: 方法说明parselnt(string&#xff…

Python 正则表达式2 语法基础

内容概述 正则表达式是由普通字符(例如"a",“b”,“c"等)以及特殊字符(例如”“,”-“,”^"等)组成的文字模式。举个例子,[a-z]这个正则表达式就代表了匹配所有的小写字母(“a”,“b”,“c”,…,…

这是一个简单网站,后续还会更新

1、首页效果图 代码 <!DOCTYPE html> <html> <head> <meta charset"utf-8" /> <title>爱德照明网站首页</title> <style> /*外部样式*/ charset "utf-8"…

什么是Vue的单文件组件(SFC)

Vue的单文件组件&#xff08;Single File Components&#xff0c;简称SFC&#xff09;是Vue.js框架中用来组织和编写组件的一种文件格式。简单来说&#xff0c;一个.vue文件就是一个单独的组件&#xff0c;它封装了组件的HTML模板、CSS样式和JavaScript逻辑。这种开发方式有助于…

Luminar开始为沃尔沃生产下一代激光雷达传感器

在自动驾驶技术的浪潮中&#xff0c;激光雷达&#xff08;LiDAR&#xff09;传感器以其高精度和强大的环境感知能力&#xff0c;逐渐成为了该领域的技术之星。Luminar&#xff08;路安达&#xff09;公司作为自动驾驶技术的领军企业&#xff0c;近日宣布已开始为沃尔沃汽车生产…

MySQL-笔记-08.数据库编程

目录 8.1 编程基础 8.1.1 基本语法 8.1.2 运算符与表达式 1. 标识符 2. 常量 &#xff08;1&#xff09; 字符串常量 &#xff08;2&#xff09;日期时间常量 &#xff08;3&#xff09;数值常量 &#xff08;4&#xff09;布尔值常量 &#xff08;5&#xff09;NULL…

牛客储物点的距离

链接&#xff1a;登录—专业IT笔试面试备考平台_牛客网 来源&#xff1a;牛客网 题目描述 一个数轴&#xff0c;每一个储物点会有一些东西&#xff0c;同时它们之间存在距离。 每次给个区间[l,r],查询把这个区间内所有储物点的东西运到另外一个储物点的代价是多少&#xff1…

如何使用免费软件从Mac恢复音频文件?

要从Mac中删除任何文件&#xff0c;背后是有原因的。大多数Mac用户都希望增加Mac中的空间&#xff0c;这就是为什么他们更喜欢从驱动器中删除文件以便出现一些空间的原因。一些Mac用户错误地删除了该文件&#xff0c;无法识别这是一个重要文件。例如&#xff0c;他们错误地从Ma…

小区服务|基于SprinBoot+vue的小区服务管理系统(源码+数据库+文档)

目录 基于SprinBootvue的小区服务管理系统 一、前言 二、系统设计 三、系统功能设计 1管理员登录 2 客服聊天管理、反馈管理管理 3 公告信息管理 4公告类型管理 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取&#xff1a; 博…

说一说具身人工智能

罗德尼布鲁克斯&#xff08;Rodney Brooks&#xff0c;现代机器人之父&#xff09;在 1991 年发表的研究论文《没有表征的智能》[1]提出了一种对智能的根本性重新思考。布鲁克斯反对传统的认为智能必须基于复杂算法或内部数据模型&#xff08;即“表征”&#xff09;的观点。他…

计算机网络复习-网络层

章节主要内容 虚拟互连网络 实际的计算机网络是错综复杂的物理设备通过使用ip协议&#xff0c;屏蔽了物理网络之间的差异当网络中的主机使用ip协议连接时&#xff0c;则无需关注网络细节 IP协议 ip协议使得复杂的实际网络变为一个虚拟互连的网络ip协议使得网络层可以屏蔽细…