admin管理员组

文章数量:1442232

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

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

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

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

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

代码语言:javascript代码运行次数:0运行复制
http {
    log_format main '$remote_addr "$request"';
}

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

代码语言:javascript代码运行次数:0运行复制
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.it300192.168.100.100

$status

HTTP请求状态

200

$upstream_status

upstream状态

200

$body_bytes_sent

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

1547

$http_referer

url跳转来源

/

$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 删除协议nginx客户端配置日志

本文标签: nginx如何自定义访问日志格式