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

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

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

Любая идея?

1 ответ

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

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

Другие вопросы по тегам