Назад | Перейти на главную страницу

Nginx: как записать количество байтов, отправленных через веб-сокет?

Я использую nginx в качестве обратного прокси-сервера websocket. Я хотел бы записать количество байтов, отправленных (а в идеале также полученных) через веб-сокет. Если я использую $body_bytes_sent в log_format, запись в access_log всегда равна 0. Насколько я могу судить, через веб-сокет прошло много данных, так что ясно $body_bytes_sent не включает данные, отправленные через веб-сокет.

Я пытался использовать $bytes_sent, но это всего лишь одна или двести байтов (независимо от того, сколько данных отправлено через веб-сокет), что явно является просто заголовками HTTP. Я просмотрел список доступных переменных nginx, но ничего не нашел ...

Любая идея?

Задача решена!

Проблема заключалась в том, что я использовал старую версию nginx. С последней версией (1.14.0), $body_bytes_sent регистрирует количество байтов, отправленных через веб-сокет.