Nginx 错误与访问日志
1. error_log
A. error_log:记录自身运行故障或用户访问出错的信息,可以调试nginx服务;
B. 格式及默认值: 关键字 日志文件 [错误日志级别] (error_log logs/error.log error);
C. 日志级别:debug info notice warn error crit alert emerg,级别越高记录的信息越少,不要设置info等级较低的级别,否则会带来大量的磁盘I/O消耗;
D. 标签段位置:main,http,server,location。
2. access_log
A. access_log:记录客户端的请求日志,可以获取用户ip和浏览器等信息;
B. 默认值:access_log logs/access_log main,需要开启log_format,注意main是与log_format中main字段一致的;
C. 关闭日志:access_log off;
D. 标签段位置:http,server,location。
3. log_format
A. log_format:日志的格式;
B. 默认值:#
$remote_addr | 访问网站的客户端地址 |
$remote_user | 远程客户端用户名 |
$time_local | 访问时间与时区 |
$request | 用户的http请求起始行信息 |
$status | http状态码,记录请求返回的状态码 |
$body_bytes_sent | 服务器发送给客户端的响应body字节数 |
$http_referer | 记录此次请求是从哪个链接访问过来的,可以根据参数进行防盗链设置 |
$http_user_agent | 记录客户端访问信息 |
$http_x_forwarded_for | 当前端有代理服务器时,设置web节点记录客户端地址的配置,此参数生效的前提是代理服务器也要进行相关的x_forwarded_for设置 |
$request_time | 指从接受用户请求数据到发送完回复数据的时间(s) |
$upstream_response_time | 指从nginx向后端建立连接开始到接受完数据然后关闭连接为止的时间(s) |
D. 标签段位置:http;
E. $request_time与$upstream_response_time字段含义
如果$request_time远大于$upstream_response_time值,则需要查看nginx模块配置或nginx与客户端的网络是否有性能瓶颈了;
如果$request_time与$upstream_response_time值相差不大,则可能是nginx连接上游服务器比较慢,或者上游服务比较慢,需要进入下一步应用层排查;
4. 获取URL请求的参数
A. 获取请求头参数:$http_HEADER,如:$http_host;
B. 获取GET参数:$arg_PARAMETER,如:$arg_id;
C. 获取cookie参数:$cookie_SESSIONID,SESSIONID代表cookie的名称;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗