原文地址:http://notelifes.com/2013/07/nginx-log_format-%E8%AE%B0%E5%BD%95%E8%87%AA%E5%AE%9A%E4%B9%89header%E4%BF%A1%E6%81%AF/
文档地址:http://wiki.nginx.org/NginxHttpUpstreamModule
在开发云盘的时候,曾经定过一个协议,对于一些业务上可重试的逻辑,例如:数据库繁忙,请稍后在试;当前操作失败,请稍后在试;或者其他的一些个能够通过重试解决的错误,且不需要用户感知的,我们在返回的时候,使用的http状态吗是500;客户端会自动进行逻辑重试;
但是我们发现一个不方便的地方,没办法很直观的看到当前的500是因为什么而导致的,排查往往需要对着inner-error.log进行对应,比较不方便;但是我们又会将当前错误码通过header进行返回;
于是,是否有可能将header信息中的自定义内容输出到log中呢?看了一下http://wiki.nginx.org/HttpLogModule nginx的log模块,看到了如下让人惊喜的信息:
The headers, transmitted to client, begin from the prefix “sent_http_”, for example, $sent_http_content_range.
Note that variables produced by other modules can also be logged. For example you can log upstream response headers with the prefix “upstream_http_”, see upstream .
原来通过sent_http_+ 自定义头,就可以实现获取变量的内容了
分享到:
相关推荐
log_format custom '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; ``` ### 10. 调整性能参数 根据...
在反向代理模式下,Nginx接收到的请求头部信息可能包含多个IP地址,而我们通常需要的是原始客户端(用户)的IP地址,即真实IP。 要获取Nginx反向代理下的真实IP,主要涉及以下两个关键配置: 1. **$remote_addr ...
- `client_header_buffer_size` 和 `large_client_header_buffers`: 控制客户端请求头的缓冲大小,防止大请求头导致的问题。 4. **GZIP压缩配置** - `gzip on`: 开启GZIP压缩,减少网络传输的数据量。 - `gzip_...
Nginx的日志记录可以自定义,包括添加或修改请求头信息。例如,如果你想记录用户的User-Agent,可以这样做: ```nginx log_format custom '$remote_addr - $remote_user [$time_local] ' '"$request" $status $...
Nginx日志记录可以通过`log_format`自定义,包含多种内置字段,如`$remote_addr`(客户端IP)、`$time_local`(本地时间戳)等。例如,创建一个包含请求方法和响应状态的日志格式: ```nginx log_format custom '[$...
文档中的"如何设置nginx日志格式来查看负载分担结果.docx"应该包含了更详细的信息,教你如何通过调整日志格式来追踪和分析负载均衡效果。记得根据实际情况调整日志路径,确保Nginx能够正确写入日志文件。 总之,...
其中,error_log用于记录nginx的错误日志,worker_processes用于设置nginx的工作进程数,events用于设置nginx的事件处理,http用于设置nginx的HTTP服务器配置。 在http部分,我们可以看到,include mime.types用于...
- `client_header_buffer_size`和`large_client_header_buffers`:设置客户端请求头的缓冲区大小。 - `output_buffers`和`postpone_output`:控制输出缓冲,优化响应速度。 5. **时间超时设置**: - `client_...
log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for" "$variant"'; ``` 这样,通过日志就可以...
日志格式是 Nginx 服务器记录客户端请求信息的重要组件,我们可以通过 `log_format` 指令来设置日志格式,例如 `log_format main '$remote_addr - $remote_user [$time_local] "$request" ';`,这将设置日志格式为 ...
总的来说,通过在Nginx中设置`proxy_set_header`以及在后端服务器正确解析`X-Forwarded-For`头,我们可以确保即使在负载均衡环境中也能准确记录来访者的IP地址。这对于进行用户行为分析、安全监控和故障排查等任务至...
log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log logs/access.log main; ...
Nginx的日志文件默认位于`/var/log/nginx/access.log`,通过`log_format`定义自定义日志格式,便于分析和监控。 ```nginx log_format custom '$remote_addr - $remote_user [$time_local] ' '"$request" $status $...
若需自定义编译选项,可从Nginx官网下载源码进行编译安装: - 下载源码:`wget http://nginx.org/download/nginx-1.15.2.tar.gz` - 解压:`tar -zxvf nginx-1.15.2.tar.gz` - 配置:`./configure --prefix=/usr/...
Nginx默认记录访问日志在`/var/log/nginx/access.log`,可以通过配置来定制日志格式和位置: ```nginx access_log /path/to/access.log main; ``` 日志格式可以自定义,例如: ```nginx log_format custom '$...
同时,Nginx服务器还提供了日志记录、缓存、负载均衡等功能。 这个示例配置展示了Nginx反向代理的基本配置和优化,旨在提高服务器的性能和安全性。 知识点: 1. Nginx反向代理的概念和作用 2. Nginx配置文件的...
- **示例**: `large_client_header_buffers 4 64k;` - **作用**: 处理较长的HTTP头部信息。 7. **`client_max_body_size`**: - **含义**: 设置客户端最大请求体大小。 - **示例**: `client_max_body_size 8m;` ...
access_log /var/log/nginx/access.log custom_format; log_format custom_format '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "...
* Nginx 的错误日志文件可以分为多个级别,例如 notice、info、warn 等,用于记录不同级别的错误信息。 三、events 配置 * events 指令指定了 Nginx 的工作模式和连接数上限。 * use 指令指定了 I/O 模式,可以...
* `client_header_buffer_size 4k;`:指定客户端请求头部的缓冲区大小为 4KB,可以根据系统分页大小来设置,一般一个请求头的大小不会超过 1KB。 打开文件缓存 * `open_file_cache max=65535 inactive=60s;`:指定...