stream_mqtt_preread module#

Enables extracting client IDs and usernames from CONNECT packets for Message Queuing Telemetry Transport (MQTT) versions 3.1.1 and 5.0.

This module is not built by default; it should be enabled with the ‑‑with‑stream_mqtt_preread_module configure option. The packages in our repos have this module built-in.

Example Configuration#

Choosing an upstream server by the client ID:#

stream {

    mqtt_preread on;

    upstream mqtt {
        hash $mqtt_preread_clientid;
        # ...
    }
}

Directives#

mqtt_preread#

Syntax:

mqtt_preread on | off;

Default:

mqtt_preread off;

Context:

stream, server

Controls extracting information from CONNECT packets during the preread phase. If the setting is on, its surrounding context will have the following variables populated.

Built-in Variables#

See the details of the value semantics in the specification of MQTT versions 3.1.1 and 5.0.

$mqtt_preread_clientid#

Unique client ID.

$mqtt_preread_username#

Optional username.