Модуль ngx_stream_mqtt_filter_module

Пример конфигурации
Директивы
     mqtt
     mqtt_buffers
     mqtt_rewrite_buffer_size
     mqtt_set_connect

Модуль ngx_stream_mqtt_filter_module (1.23.4) обеспечивает поддержку протокола Message Queuing Telemetry Transport (MQTT) версий 3.1.1 и 5.0.

Модуль доступен как часть коммерческой подписки.

Пример конфигурации

listen            127.0.0.1:18883;
proxy_pass        backend;
proxy_buffer_size 16k;

mqtt             on;
mqtt_set_connect clientid "$client";
mqtt_set_connect username "$name";

Директивы

Синтаксис: mqtt on | off;
Умолчание:
mqtt off;
Контекст: stream, server

Включает протокол MQTT для данного виртуального сервера.

Синтаксис: mqtt_buffers число размер;
Умолчание:
mqtt_buffers 100 1k;
Контекст: stream, server

Эта директива появилась в версии 1.25.1.

Задаёт число и размер буферов, необходимых для обработки MQTT-сообщений, для одного соединения.

Синтаксис: mqtt_rewrite_buffer_size размер;
Умолчание:
mqtt_rewrite_buffer_size 4k|8k;
Контекст: server

Эта директива устарела начиная с версии 1.25.1. Вместо неё следует использовать директиву mqtt_buffers.

Задаёт размер буфера, в который будет записываться модифицированное сообщение. По умолчанию размер одного буфера равен размеру страницы памяти. В зависимости от платформы это или 4K, или 8K, однако его можно сделать меньше.

Синтаксис: mqtt_set_connect поле значение;
Умолчание:
Контекст: server

Устанавливает поле в заданное значение для сообщения CONNECT. Поддерживаются следующие поля: clientid, username и password. В качестве значения можно использовать текст, переменные и их комбинации.

На одном уровне может быть указано несколько директив mqtt_set_connect:

mqtt_set_connect clientid "$client";
mqtt_set_connect username "$name";