Nginx:如何记录通过 websocket 发送的字节数?

Nginx:如何记录通过 websocket 发送的字节数?

我正在使用 nginx 作为 websocket 反向代理。我想记录通过 websocket 发送的字节数(理想情况下也记录接收的字节数)。如果我使用$body_bytes_sentin log_format,access_log 中的条目始终为 0。据我所知,很多数据都经过了 websocket,因此显然$body_bytes_sent不包括通过 websocket 发送的数据。

我尝试使用$bytes_sent,但它只有一两百字节(无论通过 websocket 发送了多少数据),这显然只是 HTTP 标头。我查看了可用的 nginx 变量列表,但找不到任何适合我的东西……

任何想法?

答案1

问题解决了!

问题是我使用的是旧版本的 nginx。使用最新版本 (1.14.0) 时,$body_bytes_sent不会记录通过 websocket 发送的字节数。

相关内容