Appearance
FreeMQTT plus 配置
FreeMQTT Plus 集群配置位于 ~/freemqtt-swarm-compose/conf.d 路径下。
配置文件 config.toml
配置文件 config.toml secret除外,多数项不需更改,采用默认设置即可。
此文件用于不使用 NGINX 作为前端负责均衡器的情形。
toml
[freemqtt]
# 通用配置
[freemqtt.common]
# 用于生成客户端的 token 和 MQTT 客户端连接鉴权用的秘钥
# 必须为64位十六进制字符串(二进制256位秘钥)
# 一定要注意保管,避免向外泄漏
secret = "F593BDE387F7530CF0F35CC2DB763F755AB770E779C0FD0C3AB018E7439E2A3D"
# 最大topic & topic filter 级别,默认 6
maximum_topic_level = 6
# 发布 FreeMQTT 统计信息间隔
pub_sys_stat_interval = 15 # in seconds
# HAProxy proxy protocol enable
proxy_protocol = false
# docker swarm enable
docker_swarm = true
# remote logging enable
remote_logging_enable = false
# ssl/tls enable
# listen port: 8883
ssl_port_enable = true
# websocket ws enable
# listen port: 8083
ws_port_enable = true
# weboskcet wss (ssl/tls) enable
# listen port: 8084
wss_port_enable = true
# mqtt port
mqtt_port = 1883
# mqtt over ssl
mqtts_port = 8883
# mqtt over webosket
ws_port = 80
# mqtt over ssl websocket
wss_port = 443
# b-node admin port
bnode_admin_port = 9200
# ssl/tls, wss cert & key file
freemqtt_cert = "./ssl/freemqtt.crt"
freemqtt_key = "./ssl/freemqtt.key"
# MQTT 5.0 属性配置
[freemqtt.properties]
session_expiry_interval = 7200 # in second
message_expiry_interval = 7200 # in second
receive_maximum = 64
maximum_packet_size = 2097152 # 2*1024*1024 = 2M bytes
maximum_qos = 2
retain_available = true
topic_alias_maximum = 64
wildcard_subscription_available = true
subscription_identifiers_available = true
shared_subscription_available = true
server_keep_alive = 60 # in second
response_information = "Welcome to FreeMQTT Broker."
# swarm a-node list
[freemqtt.anode]
list = [
{ nodeid='A1', address='freemqtt_anode-1' },
{ nodeid='A2', address='freemqtt_anode-2' },
{ nodeid='A3', address='freemqtt_anode-3' },
]
# swarm b-node list
[freemqtt.bnode]
list = [
{ nodeid='B1', address='freemqtt_bnode-1'},
{ nodeid='B2', address='freemqtt_bnode-2'},
]
# swarm logging
[freemqtt.logging]
address = "freemqtt_logger" # docker swarm freemqtt logger service name
port = 9300
path = "./log/freemqtt.log"
#path = "console" # for out to console
maxim_size = 10485760 # 10M
level = 20 # logging.NOTSET = 0, logging.DEBUG = 10, logging.INFO = 20, logging.WARNING = 30, logging.ERROR = 40, logging.CRITICAL = 50配置文件 config-with-nginx.toml
此文件用于使用 NGINX 作为前端负责均衡器的情形。这里省略其内容。
更改 secret
在实际部署到生产环境时,为了安全,不建议使用 config.toml 中 secret 的默认值。
- secret 是 256 bit, 即长度为64的十六进制的字符串。
- 可以手动更改,但要保证长度为64个字符,字符是十六进制的字符(0-9 A-F)
亦可以用如下的命令随机生成 secret 值:
bash
$ sudo docker exec -it 91a1eabf896e /freemqttd/gen_secret
# 输出如下:
secret: ECE10149E6F5FC94C1289B4E3C923351B40038E82BE602E917CEA3C9EF79410D其中 91a1eabf896e 为一个B-Node 容器 ID, 如何查看请参考前面快速部署章节。
更新 secret 后, FreeMQTT Plus 集群需重新启动并且客户端的token也需要重新生成。
