Nginx 自定义日志,$bytes_sent 是否存在类似于 $bytes_received 的东西?

ene*_*ebe 6 nginx

我正在将我的服务器从 Apache 更改为 Nginx。Nginx 只会为静态文件提供服务,并代理 apache 用于动态文件和 NodeJS 用于耗尽工作。通过我在 Apache 中的初始实现,我有一些自定义日志来了解我发送和接收的数据量。

CustomLog /var/log/apache2/traffic-access.log "%{%s}t|%O|%I|%{Referer}i|%a|%U"
Run Code Online (Sandbox Code Playgroud)

此自定义日志生成此日志示例:

Timestamp|bytes sent|bytes received|user agent|IP|URL request

1335941116|261|322|user-4263|127.0.0.1|/1.1/user/downloading
Run Code Online (Sandbox Code Playgroud)

我想将此自定义日志迁移到 Nginx 并尝试尽可能少地更改获取流量数据的内部脚本。

我想维护2个日志,主日志和流量日志。

我从这个自定义日志开始:

http {
[...]

log_format traffic '$msec|$bytes_sent|$request_length???|$http_user_agent|$remote_addr|$request_filename';

access_log  logs/access.log  main;
access_log  logs/traffic.log traffic
Run Code Online (Sandbox Code Playgroud)

request_length 是用户发送到服务器的字节吗?

Kha*_*led 7

是的,这$request_length是用户发送到服务器的请求正文的长度。您可以访问此链接以获取其他值。