纯干货,一文带你了解如何配置Nginx日志!

一文带你了解ELK部署+多日志监控 首先系统出问题 研发第一个找的就是运维,问你要各种日志以前上服务器拉日志,太俗 今天换个新姿势 走上自动化运维的重要一步日志监控 ELK 是(Elasticsearch+Logstash+Kibana 外+Filebeat) 工作机制 :F 负责日志的收集(input)-->然后把日志吐给L(output)-->让后给ES-->K负责展示 这里多说一点 Logstash 和Filebeat两弟兄其他们两个都可以完成input日志和output日志,但是L运行机制比较大占用内存大,擅 阅读详情
纯干货,一文带你了解如何配置Nginx日志!
前言

Nginx日志对于统计、系统服务排错很有用。

Nginx日志主要分为两种:access_log(访问日志)和error_log(错误日志)。通过访问日志我们可以得到用户的IP地址、浏览器的信息,请求的处理时间等信息。错误日志记录了访问出错的信息,可以帮助我们定位错误的原因。

本文将详细描述一下如何配置Nginx日志。

设置access_log

访问日志主要记录客户端的请求。客户端向Nginx服务器发起的每一次请求都记录在这里。客户端IP,浏览器信息,referer,请求处理时间,请求URL等都可以在访问日志中得到。当然具体要记录哪些信息,你可以通过log_format指令定义。

  • 语法
access_log path [format [buffer=size] [gzip[=level]] [flush=time] [if=condition]]; # 设置访问日志
access_log off; # 关闭访问日志



  • path 指定日志的存放位置。
  • format 指定日志的格式。默认使用预定义的combined。
  • buffer 用来指定日志写入时的缓存大小。默认是64k。
  • gzip 日志写入前先进行压缩。压缩率可以指定,从1到9数值越大压缩比越高,同时压缩的速度也越慢。默认是1。
  • flush 设置缓存的有效时间。如果超过flush指定的时间,缓存中的内容将被清空。
  • if 条件判断。如果指定的条件计算为0或空字符串,那么该请求不会写入日志。

另外,还有一个特殊的值off。如果指定了该值,当前作用域下的所有的请求日志都被关闭。

  • 作用域

可以应用access_log指令的作用域分别有http,server,location,limit_except。也就是说,在这几个作用域外使用该指令,Nginx会报错。

以上是access_log指令的基本语法和参数的含义。下面我们看几个例子加深一下理解。

  • 基本用法
access_log /var/logs/nginx-access.log



该例子指定日志的写入路径为/var/logs/nginx-access.log,日志格式使用默认的combined。

access_log /var/logs/nginx-access.log buffer=32k gzip flush=1m



该例子指定日志的写入路径为/var/logs/nginx-access.log,日志格式使用默认的combined,指定日志的缓存大小为32k,日志写入前启用gzip进行压缩,压缩比使用默认值1,缓存数据有效时间为1分钟。

使用log_format自定义日志格式

Nginx预定义了名为combined日志格式,如果没有明确指定日志格式默认使用该格式:

log_format combined '$remote_addr - $remote_user [$time_local] '
                    '"$request" $status $body_bytes_sent '
                    '"$http_referer" "$http_user_agent"';



如果不想使用Nginx预定义的格式,可以通过log_format指令来自定义。

  • 语法
log_format name [escape=default|json] string ...;



  • name 格式名称。在access_log指令中引用。

  • escape 设置变量中的字符编码方式是json还是default,默认是default。

  • string 要定义的日志格式内容。该参数可以有多个。参数中可以使用Nginx变量。

    下面是log_format指令中常用的一些变量:

$bytes_sent
发送给客户端的总字节数

$body_bytes_sent
发送给客户端的字节数,不包括响应头的大小

$connection
连接序列号

$connection_requests
当前通过连接发出的请求数量

$msec
日志写入时间,单位为秒,精度是毫秒

$pipe
如果请求是通过http流水线发送,则其值为"p",否则为“."

$request_length
请求长度(包括请求行,请求头和请求体)

$request_time
请求处理时长,单位为秒,精度为毫秒,从读入客户端的第一个字节开始,直到把最后一个字符发送张客户端进行日志写入为止

$status
响应状态码

$time_iso8601
标准格式的本地时间,形如“2017-05-24T18:31:27+08:00”

$time_local
通用日志格式下的本地时间,如"24/May/2017:18:31:27 +0800"

$http_referer
请求的referer地址。

$http_user_agent
客户端浏览器信息。

$remote_addr
客户端IP

$http_x_forwarded_for
当前端有代理服务器时,设置web节点记录客户端地址的配置,此参数生效的前提是代理服务器也要进行相关的x_forwarded_for设置。

$request
完整的原始请求行,如 "GET / HTTP/1.1"

$remote_user
客户端用户名称,针对启用了用户认证的请求

$request_uri
完整的请求地址,如 "https://daojia.com/"



下面演示一下自定义日志格式的使用:

access_log /var/logs/nginx-access.log main
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指令定义了一个main的格式,并在access_log指令中引用了它。假如客户端有发起请求:https://suyunfe.com/,我们看一下我截取的一个请求的日志记录:

112.195.209.90 - - [20/Feb/2018:12:12:14 +0800] 
"GET / HTTP/1.1" 200 190 "-" "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) 
AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Mobile Safari/537.36" "-"



我们看到最终的日志记录中$remote_user、$http_referer、$http_x_forwarded_for都对应了一个-,这是因为这几个变量为空。

设置error_log

错误日志在Nginx中是通过error_log指令实现的。该指令记录服务器和请求处理过程中的错误信息。

  • 语法

配置错误日志文件的路径和日志级别。

error_log file [level];
Default:    
error_log logs/error.log error;



第一个参数指定日志的写入位置。

第二个参数指定日志的级别。level可以是debug, info, notice, warn, error, crit, alert,emerg中的任意值。可以看到其取值范围是按紧急程度从低到高排列的。只有日志的错误级别等于或高于level指定的值才会写入错误日志中。默认值是error。

  • 基本用法
error_log /var/logs/nginx/nginx-error.log



它可以配置在:main, http, mail, stream, server, location作用域。

例子中指定了错误日志的路径为:/var/logs/nginx/nginx-error.log,日志级别使用默认的error。

open_log_file_cache

每一条日志记录的写入都是先打开文件再写入记录,然后关闭日志文件。如果你的日志文件路径中使用了变量,如access_log /var/logs/$host/nginx-access.log,为提高性能,可以使用open_log_file_cache指令设置日志文件描述符的缓存。

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



  • max 设置缓存中最多容纳的文件描述符数量,如果被占满,采用LRU算法将描述符关闭。

  • inactive 设置缓存存活时间,默认是10s。

  • min_uses 在inactive时间段内,日志文件最少使用几次,该日志文件描述符记入缓存,默认是1次。

  • valid:设置多久对日志文件名进行检查,看是否发生变化,默认是60s。

  • off:不使用缓存。默认为off。

  • 基本用法

open_log_file_cache max=1000 inactive=20s valid=1m min_uses=2;



它可以配置在http、server、location作用域中。

例子中,设置缓存最多缓存1000个日志文件描述符,20s内如果缓存中的日志文件描述符至少被被访问2次,才不会被缓存关闭。每隔1分钟检查缓存中的文件描述符的文件名是否还存在。

总结

Nginx中通过access_log和error_log指令配置访问日志和错误日志,通过log_format我们可以自定义日志格式。如果日志文件路径中使用了变量,我们可以通过open_log_file_cache指令来设置缓存,提升性能。

另外,在access_log和log_format中使用了很多变量,这些变量没有一一列举出来,详细的变量信息可以参考Nginx官方文档:http://nginx.org/en/docs/varindex.html

*来源:**作者antwang,*juejin.im/post/5aa09bb3f265da238f121b6c

img

**文末福利
**

img

最后给大家整理了40道高频Nginx面试题,涵盖核心知识点:

  1. 基础概念:Nginx特性、与Apache对比、正向/反向代理、Master/Worker进程。
  2. 核心配置:HTTP请求处理、限流算法(漏桶/令牌桶)、动静分离、负载均衡策略(轮询/权重/ip_hash等)。
  3. 实战技巧:虚拟主机配置、跨域解决方案、错误页面替换、高可用性设置。
  4. 性能优化:高并发原理(异步非阻塞)、动静资源分离、缓存策略。

适合:后端开发、运维工程师

40道Nginx面试题

1、请解释—下什么是Nginx?

2、请列举Nginx的一些特性。

3、请列举Nginx和Apache 之间的不同点。

4、请解释Nginx如何处理HTTP请求。

5、在Nginx中,如何使用未定义的服务器名称来阻止处理请求?

6、使用"反向代理服务器"的优点是什么?

7、请列举Nginx服务器的最佳用途。

8、请解释Ngjinx服务器上的Master和Worker进程分别是什么?

9、请解释你如何通过不同于80的端口开启Nginx?

10、请解释是否有可能将Nginx的错误替换为502错误、5 03

11、在Nginx中,解释如何在URL中保留双斜线

12、请解释ngx_http_upstream_module的作用是什么

13、请解释什么是C10K问题

14、请陈述stub status和sub filter指令的作用是什么

15、解释Nginx是否支持将请求压缩到上游

16、解释如何在Nginx中获得当前的时间

17、用Nginx服务器解释-s的目的是什么

18、解释如何在Nqinx服务器上添加模块

19、为什么要用Nginx?

20、为什么Nginx性能这么高?

图片

图片

网络安全学习资源分享:

给大家分享一份全套的网络安全学习资料,给那些想学习 网络安全的小伙伴们一点帮助!

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

因篇幅有限,仅展示部分资料,朋友们如果有需要全套《网络安全入门+进阶学习资源包》,请看下方扫描即可前往获取
在这里插入图片描述

👉1.成长路线图&学习规划👈

要学习一门新的技术,作为新手一定要先学习成长路线图,方向不对,努力白费。

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图&学习规划。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

在这里插入图片描述
在这里插入图片描述

👉2.网安入门到进阶视频教程👈

很多朋友都不喜欢晦涩的文字,我也为大家准备了视频教程,其中一共有21个章节,每个章节都是当前板块的精华浓缩。(全套教程扫描领取哈)
在这里插入图片描述
在这里插入图片描述

👉3.SRC&黑客文档👈

大家最喜欢也是最关心的SRC技术文籍&黑客技术也有收录

SRC技术文籍:
在这里插入图片描述
黑客资料由于是敏感资源,这里不能直接展示哦! (全套教程扫描领取哈)

👉4.护网行动资料👈

其中关于HW护网行动,也准备了对应的资料,这些内容可相当于比赛的金手指!
在这里插入图片描述

👉5.黑客必读书单👈

在这里插入图片描述

👉6.网络安全岗面试题合集👈

当你自学到这里,你就要开始思考找工作的事情了,而工作绕不开的就是真题和面试题。
在这里插入图片描述

所有资料共282G,朋友们如果有需要全套《网络安全入门+进阶学习资源包》,可以扫描下方二维码或链接免费领取~
在这里插入图片描述

一文详细介绍查看和启用nginx日志(access.log和error.log),nginx错误日志的安全级别,自定义访问日志中的格式 一文详细介绍查看和启用nginx日志(access.log和error.log),启用nginx的访问日志和错误日志,nginx错误日志的安全级别,自定义访问日志中的格式 阅读详情

相关推荐

Nginx日志配置

nginx日志主要有两类,分别是访问日志access_log和error_log。log_format是用来配置access_log输出日志格式的,但是error_log是不支持自定义日志格式,只支持配置日志级别。

飞龙在天 2498

nginx日志log

一.日志配置 1.相关指令:log_format,access_log,error_log,open_log_file_cache 2.日志格式:log_format vim /etc/nginx/nginx.conf $remote_addr远程地址: 记录客户端IP地址 $remote_user远程用户:记录客户端用户名称 [$time_local] 本地时间:服务器自身时间 $request请求:记录请求的URL和HTTP协议(后面的http/1.1)协议版本 ...

weixin_46946629的博客 8605

Nginx实战:日志配置

Nginx是一款高性能的HTTP和反向代理服务器,同时也是一个IMAP/POP3/SMTP服务器。在Nginx的日常使用中,日志记录是非常重要的一部分,它可以帮助我们监控服务器的运行状态、诊断问题以及分析用户行为等。下面将介绍如何配置Nginx的日志。

龙叔运维的博客 2771

nginx访问日志(access_log)

一、nginx访问日志介绍 nginx软件会把每个用户访问网站的日志信息记录到指定的日志文件里,供网站提供者分析用户的浏览行为等,此功能由ngx_http_log_module模块负责,对应的官方地址为:http://nginx.org/en/docs/http/ngx_http_log_module.html. 二、访问日志参数 nginx的访问日志主要有以下2个参数控制 log_format 用来定义记录日志的格式(可以定义多种日志格式,取不同的名字即可) access_log

JohnieLi的博客 1万+

KITTI数据集下载及解析

KITTI数据集下载及解析 版本 更新时间 更新内容 作者 1 V 1.0 xxx 完成主体内容 W. Xiao 2 文章目录KITTI Dataset1 简介1.1 数据采集平台1.2 坐标系2 数据解析2.1 image文件2.2 velodyne文件2.3 calib文件2.4 label文件3 KITTI可视...

u013086672的博客 5万+

PowerDesigner16.5下载和安装教程

一、软件下载 1.下载地址(不用复制,直接点击下载链接即可):链接:https://pan.baidu.com/s/1MSnWHWt3SO2Uz5dt9AANAg提取码:z9kk 二、软件安装 1.下载安装包(包含安装文件、汉化包、注册文件) 2.下载后文件内容如下 3....

cicong2374的博客 10万+

关闭日志_纯干货,一文带你了解如何配置Nginx日志!

点击“程序员面试吧”,选择“星标?”回复关键词“面试”有惊喜~前言Nginx日志对于统计、系统服务排错很有用。Nginx日志主要分为两种:access_log(访问日志)和error_log(错误日志)。通过访问日志我们可以得到用户的IP地址、浏览器的信息,请求的处理时间等信息。错误日志记录了访问出错的信息,可以帮助我们定位错误的原因。本文将详细描述一下如何配置Nginx日志。设置acc...

weixin_29826879的博客 208

Vmware虚拟机克隆详解:固定ip + 修改uuid等内容

分两大步 设置固定ip 克隆后修改相关配置 本文引用的其他地方的图片。会附上链接 若侵权,删 一、设置静态ip 先进行虚拟网络的编辑 接下来的操作需要管理员权限。(给权限就完事了) 接下来设置网卡: 网络和共享中心→ 更改适配器设置→VMware Network Adapter VMnet8 -> 右键属性 修改TCP/Ipv4的配置,网上常见是这种,笔者是英文的...

Unknownfuture的博客 9070

一文带你走完Nginx的配置方法(Nginx+Flask)

作为一个南方人,我每天都洗澡,一年四季,从不间断。甚至我在北京读书的7年,都这么过来的(除开几次喝醉的情况)。洗澡是一件很舒服的事情,你可以完全放松,听着music,哼着小曲,多么惬意。阿基米德也是在洗澡的时候发现了浮力,以此证明:洗澡是件好事! 今天在洗澡的时候,我突然领悟到了nginx的反向代理是干嘛的,于是我哐哧哐哧的研究了一晚上怎么配置nginx。以下上干货! 一、安装(ubun...

weixin_42078618的博客 2696

Unity 2022打包Android APK:手把手教你创建和配置第一个签名Keystore(避坑指南)

本文详细介绍了Unity 2022打包Android APK时创建和配置签名Keystore的全流程,包括环境准备、Keystore创建、高级配置避坑指南以及签名验证与故障排查。特别强调了Android应用签名的重要性及安全维护策略,帮助开发者避免常见错误,确保应用顺利发布。

weixin_27379781的博客 241

图解基站机房:AAU、RRU与BBU之间的线缆连接与规格选择

本文以图解方式详解了5G基站机房中AAU、RRU与BBU三大核心设备之间的线缆连接方案与规格选择。重点阐述了电力线(如2×10 mm²直流电缆)、数据光缆(如野战光缆与波分复用)及射频馈线的功能、选型标准与实战布线法则,为通信工程部署与维护提供清晰指导。

weixin_29306011的博客 499

NGINX开启debug日志的方法

debug日志的作用NGINX debug日志在服务器管理中扮演着至关重要的角色,它不仅能帮助管理员深入排查问题,还能为性能优化提供宝贵的数据支持。详细追踪服务器行为:记录每个请求的处理过程,包括请求头、响应头和请求处理的各个阶段。性能瓶颈定位:分析请求处理时间、资源使用情况等性能指标,找出潜在的性能瓶颈。配置错误诊断:识别和解决由于错误配置导致的问题,如模块加载失败或配置语法错误。安全漏洞检测:监控潜在的安全威胁,如恶意请求或未经授权的访问尝试。

2401_86544677的博客 1891

1、 快速掌握R:初学者的计量经济学指南

本博文旨在为初学者提供一个快速掌握R语言的指南,特别是针对计量经济学领域的应用。内容涵盖了R的基本操作、数据管理、可视化、函数编写以及高级统计分析方法,如OLS回归、异方差修正和集群标准误差计算等。通过实际示例和详细说明,帮助读者在数据分析和科学研究中更加得心应手。

weixin_35734408的博客 148

超强干货!通过filebeat、logstash、rsyslog 几种方式采集 nginx 日志

由于nginx功能强大,性能突出,越来越多的web应用采用nginx作为http和反向代理的web服务器。而nginx的访问日志不管是做用户行为分析还是安全分析都是非常重要的数据源之一。...

民工哥的博客 1137

YOLOv8改进 | 独家创新篇 | 给YOLOv8增加辅助可逆分支结构(PGI,1:1改进)(全网独家创新,附视频讲解)

这张图(图3)展示了可编程梯度信息(PGI)及其相关网络架构和方法。这种网络结构主要用于改进特征融合,以提高目标检测的性能。然而,由于信息瓶颈的存在,网络中可能会丢失一些信息。这是一种旨在减少信息丢失的网络设计。它通过可逆的列结构来尝试维持信息流通不受损失,但如图中“Heavy Cost”所示,这种结构会增加计算成本。c) 深度监督:这种方法通过在网络的多个层次中插入额外的监督信号来提高学习的效率和最终模型的性能。图中显示了通过深度监督连接的各个层。

Snu77的博客 3744

半导体工艺仿真:离子注入工艺仿真_(8).损伤和缺陷仿真

离子注入工艺在半导体制造中是一个重要的步骤,用于在半导体材料中引入特定的掺杂剂。然而,离子注入过程中不可避免地会产生损伤和缺陷,这些损伤和缺陷会直接影响器件的性能和可靠性。因此,对离子注入工艺中的损伤和缺陷进行仿真研究是必不可少的。本节将详细介绍如何使用仿真软件对离子注入过程中的损伤和缺陷进行建模和分析。

2401_87715305的博客 1339

HoRain云--如何开启NGINX的debug日志?3步快速定位问题

通过开启debug日志,开发者可以深入分析NGINX的内部处理流程。但需注意调试完成后及时关闭,避免影响服务器性能。建议结合grep命令过滤关键日志信息,提高排查效率。❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄👍 👍 👍🔥🔥🔥Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙。

2401_86544677的博客 1049

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Nginx(常用命令及使用场景,纯干货)

nginx 1. 简介 1.1 > 来源 ​ 为了减轻传统WEB项目中单节点的服务压力,进而采取批量部署的方式(集群),但是总要有一台服务器来充当门面服务,相较于其他服务器它需要具备更强的并发,并需要根据每台服务器的负载量,按照不同的比例分发请求(负载均衡),Nginx就是这样一种服务器。 2. 下载/安装 2.1 > windows 下载: http://nginx.org...

qq_37328871的博客 2万+

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

centos 修改nginx 默认配置文件_该了解一波了!零基础入门Nginx

点击蓝色“程序员的时光”关注我,标注“星标”,及时阅读最新技术文章写在前面:小伙伴儿们,大家好!今天来入门学习Nginx!下一篇讲Nginx最重要的配置文件等,持续更新,敬请期待!思维导图:1,Nginx是什么?Nginx官网:http://nginx.org/Nginx是lgor Sysoev为俄罗斯一个高性能的HTTP和反向代理访问量第二的Rambler.ru站点开发的,从200...

weixin_39571404的博客 786

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Nginx 配置清单,反向代理、限流、SSL、负载均衡全都有干货建议收藏!

本文介绍了Nginx在生产环境中的常用配置技巧,包括负载均衡、静态资源访问、日志管理等功能。主要内容有:1)负载均衡配置,通过upstream模块实现多节点轮询;2)静态资源访问优化,包括Vue项目配置、验证文件处理和404页面设置;3)安全优化,如隐藏Nginx版本号、防止DNS欺骗;4)日志管理方案,包括JSON格式化和定时分片;5)灰度发布和限流等高级功能实现。文章还提供了常见问题解决方案,如502错误处理、IP限制等。这些配置技巧可帮助提升Nginx性能、安全性和可维护性。

https://ophome.blog.youkuaiyun.com,在IT行业有多年的工作经验,尤其是在Python、Linux、负载均衡、Nginx和服务器运维等领域。 905
上一篇: 网络安全零基础学习方向及需要掌握的技能
下一篇: 干到高级运维,必须狠练这8大技能
披荆斩棘的GG
博客等级 码龄4年 1万+粉丝 2960原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值