我正在使用 nginx 作为 websocket 反向代理。我想记录通过 websocket 发送的字节数(理想情况下也记录接收的字节数)。如果我使用$body_bytes_sent
in log_format
,access_log 中的条目始终为 0。据我所知,很多数据都经过了 websocket,因此显然$body_bytes_sent
不包括通过 websocket 发送的数据。
我尝试使用$bytes_sent
,但它只有一两百字节(无论通过 websocket 发送了多少数据),这显然只是 HTTP 标头。我查看了可用的 nginx 变量列表,但找不到任何适合我的东西……
任何想法?
答案1
问题解决了!
问题是我使用的是旧版本的 nginx。使用最新版本 (1.14.0) 时,$body_bytes_sent
不会记录通过 websocket 发送的字节数。