首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >nginx如何自定义访问日志格式

nginx如何自定义访问日志格式

作者头像
用户6948990
发布2025-04-03 18:46:48
发布2025-04-03 18:46:48
6550
举报
文章被收录于专栏:wuterwuter

还是跟上一篇文章中Apache同样的问题,图床这个网站套了CDN,日志文件无法获取访客的真实IP地址,但是又不像Apache那样直接修改LogFormat后面的参数就可以,这里就记录一下。

我使用的nginx版本是1.17.8,从1.16版本之后配置方法有所不同,这里就只介绍1.16+版本配置方法。

与日志有关的主要有两条命令:

1.一条是log_format,用来设置日志格式。写在http块中。

代码语言:javascript
复制
http {
    log_format main '$remote_addr "$request"';
}

2. 另外一条是access_log,用来指定日志文件的存放路径、格式和缓存大小,一般在nginx的配置文件中日记配置(/usr/local/nginx/conf/nginx.conf)。写在server块中。

代码语言:javascript
复制
server {
    access_log /var/log/nginx/access.log main;
}

使用方法就是 http块定义+server块调用

代码中的main只是日志类型代码,可以随意取,nginx默认是combine格式。

附录(log_format汇总)

参数

说明

示例

$remote_addr

客户端地址

211.28.65.253

$remote_user

客户端用户名称

--

$time_local

访问时间和时区

18/Jul/2012:17:00:01 +0800

$request

请求的URI和HTTP协议

"GET /article-10000.html HTTP/1.1"

$http_host

请求地址,即浏览器中你输入的地址(IP或域名)

www.it300.com192.168.100.100

$status

HTTP请求状态

200

$upstream_status

upstream状态

200

$body_bytes_sent

发送给客户端文件内容大小

1547

$http_referer

url跳转来源

https://www.baidu.com/

$http_user_agent

用户终端浏览器等信息

"Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; SV1; GTB7.0; .NET4.0C;

$ssl_protocol

SSL协议版本

TLSv1

$ssl_cipher

交换数据中的算法

RC4-SHA

$upstream_addr

后台upstream的地址,即真正提供服务的主机地址

10.10.10.100:80

$request_time

整个请求的总时间

0.205

$upstream_response_time

请求过程中,upstream响应时间

0.002

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-09-06 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档