首页 > 其他分享 >EMQX学习笔记:配置文件

EMQX学习笔记:配置文件

时间:2023-09-26 09:00:11浏览次数:40  
标签:web 配置文件 笔记 默认 hook auth emqx action EMQX

本文更新于2023-02-27,使用EMQX 4.4.3。

目录

官方文档:https://www.emqx.io/docs/zh/v4.4/configuration/configuration.html

Linux下的配置文件目录为/etc/emqx,Windows下的配置文件目录为解压目录下的emqx/etc。

acl.conf

emqx.conf

EMQX主配置。

  • acl_cache_max_size:每个Client缓存的最大ACL记录数。默认为32。
  • acl_cache_ttl:ACL缓存的过期时间。默认为1m。
  • acl_deny_action:ACL权限检验失败时的动作。ignore或disconnect,默认为ignore。
  • acl_nomatch:查询不到ACL记录时是否对PUBLISH和SUBSCRIBE权限进行限制。默认为allow。
  • allow_anonymous:是否允许匿名CONNECT。默认为true。
  • broker.sys_interval:系统主题的发布时间间隔。默认为1m。
  • enable_acl_cache:是否开启ACL缓存。默认为on。
  • listener.ssl.external:External监听器的MQTTS端口。默认为8883。
  • listener.ssl.external.certfile:External监听器的MQTTS端口的证书cert文件路径。默认为/etc/emqx/certs/cert.pem。
  • listener.ssl.external.keyfile:External监听器的MQTTS端口的证书key文件路径。默认为/etc/emqx/certs/key.pem。
  • listener.tcp.external:External监听器的MQTT端口。默认为0.0.0.0:1883。
  • listener.tcp.internal:Internal监听器的MQTT端口。默认为127.0.0.1:11883。
  • node.cookie:节点间的Cookie认证。集群中节点的Cookie需保持一致。默认为emqxsecretcookie。
  • node.name:EMQX的Broker节点名。默认为[email protected]
  • module.subscription.1.qos:自动订阅的QOS。可自定义序数(“1”)。默认为0。
  • module.subscription.1.topic:自动订阅的主题名。可自定义序数(“1”)。默认为connected/%c/%u。
  • shared_subscription_strategy:共享订阅分发策略。random为所有共享订阅者随机选择分发,round_robin为按照共享订阅者订阅的顺序分发,sticky为分发给上次分发的订阅者,hash为根据ClientId进行分发。默认为random。
  • zone.external.session_expiry_interval:External监听器的会话过期时间。默认为2h。
  • zone.internal.allow_anonymous:Internal监听器是否允许匿名认证。默认为true。

plugins/emqx_auth_http.conf

HTTP权限验证插件配置。

  • auth.http.acl_req.url:PUBLISH和SUBSCRIBE的ACL验证请求URL。默认为http://127.0.0.1:80/mqtt/acl。
  • auth.http.auth_req.url:CONNECT的身份验证请求URL。默认为http://127.0.0.1:80/mqtt/auth。

plugins/emqx_auth_jwt.conf

JWT权限验证插件配置。

  • auth.jwt.secret:JWT的Secret。默认为emqxsecret。
  • auth.jwt.verify_claims:是否开启Claim认证。默认为off。
  • auth.jwt.verify_claims.username:默认为%u,表示需要验证Claim中的username字段。

plugins/emqx_auth_mongo.conf

MongoDB权限验证插件配置。

  • auth.mongo.acl_query.collection。存放PUBLISH和SUBSCRIBE的ACL信息的集合名。集合中的文档需有此三个数组字段:publish、subscribe、pubsub。默认为mqtt_acl。
  • auth.mongo.acl_query.selector:查询PUBLISH和SUBSCRIBE的ACL记录的条件。默认为username=%u。
  • auth.mongo.auth_query.collection:用于CONNECT的身份验证的集合名。默认为mqtt_user。
  • auth.mongo.auth_query.password_field:用于CONNECT的身份验证的密码字段名。默认为password。
  • auth.mongo.auth_query.password_hash:用于CONNECT的身份验证的密码字段加密方式。默认为sha256。
  • auth.mongo.auth_query.selector:用于CONNECT的身份验证的记录查询条件。默认为username=%u。
  • auth.mongo.database:MongoDB数据库名。默认为mqtt。
  • auth.mongo.server:MongoDB服务器地址。默认为127.0.0.1:27017。

plugins/emqx_coap.conf

CoAP插件配置。

plugins/emqx_management.conf

管理API插件。

plugins/emqx_web_hook.conf

WebHook插件配置。

  • web.hook.body.encoding_of_payload_field:HTTP实体编码。默认为plain。
  • web.hook.rule.client.connack.1:服务端准备下发连接应答报文时的动作。默认为{"action": "on_client_connack"}。
  • web.hook.rule.client.connect.1:服务端收到客户端的连接报文时的动作。默认为{"action": "on_client_connect"}。
  • web.hook.rule.client.connected.1:客户端认证完成并成功接入系统后的动作。默认为{"action": "on_client_connected"}。
  • web.hook.rule.client.disconnected.1:客户端连接层在准备关闭时的动作。默认为{"action": "on_client_disconnected"}。
  • web.hook.rule.client.subscribe.1:收到订阅报文后,执行鉴权前的动作。默认为{"action": "on_client_subscribe"}。
  • web.hook.rule.client.unsubscribe.1:收到取消订阅报文后的动作。默认为{"action": "on_client_unsubscribe"}。
  • web.hook.rule.message.acked.1:服务端在收到客户端发回的消息ACK后的动作。默认为{"action": "on_message_acked"}。
  • web.hook.rule.message.delivered.1:消息准备投递到客户端前的动作。默认为{"action": "on_message_delivered"}。
  • web.hook.rule.message.publish.1:服务端在发布(路由)消息前的动作。默认为{"action": "on_message_publish"}。
  • web.hook.rule.session.subscribed.1:完成订阅操作后的动作。默认为{"action": "on_session_subscribed"}。
  • web.hook.rule.session.terminated.1:会话销毁后的动作。默认为{"action": "on_session_terminated"}。
  • web.hook.rule.session.unsubscribed.1:完成取消订阅操作后的动作。默认为{"action": "on_session_unsubscribed"}。
  • web.hook.url:WebHook回调URL。默认为http://127.0.0.1:80。

标签:web,配置文件,笔记,默认,hook,auth,emqx,action,EMQX
From: https://www.cnblogs.com/garvenc/p/emqx_learning_configuration_file.html

相关文章

  • 《软件工程:一种实践方法》读书笔记一
    "软件工程:一种实践方法"是由RogerS.Pressman撰写的软件工程领域的经典教材。以下是一份读后感总结,其中包含了一些重要观点和感受:1.综合性与全面性:这本书对软件工程的内容进行了广泛的涵盖,涉及到了软件开发的各个方面,包括需求工程、设计、测试、维护和项目管理等。它提供了一个......
  • ARC140D 做题笔记
    洛谷题目链接ATcoder题目链接好题。(不过绝大部分题解全在瞎说)看到$n$个点$n$条边且每个点只有一条出边很容易的想到基环树。而最后每个连通块一定是一个基环树,那么统计连通块的数量就相当于统计基环树的数量。既然有基环树,这种题绝对不能枚举然后求连通块数量,一定是枚举......
  • 【学习笔记】(29) 笛卡尔树
    定义与性质笛卡尔树是一种二叉树,每一个结点由一个键值二元组\((k,w)\)构成。要求\(k\)满足二叉搜索树的性质,而\(w\)满足堆的性质。,也就是说,对于一个节点\(i\)的左儿子\(l_i\)和右儿子\(r_i\),一定满足\(l_i<i<r_i\)(下标\(k\)满足二叉搜索树的性质)且\(v_{l_i}\)与......
  • 组合数学学习笔记
    这是一位数学小萌新看oi-wiki的一点点收获。二项式定理二项式定理是组合数学中很基础且很重要的定理,它的式子为:\((a+b)^n=\sum_{i=0}^n\binom{n}{i}a^ib^{n-i}\)可以通过归纳法剖析\((a+b)^n\)的过程证明其正确性。范德蒙德卷积:\(\large\sum_{i=0}^k\binom{n}{i}......
  • 【笔记】机器学习基础 - Ch6.5-6 Kernel Methods
    6.5Sequencekernels考虑拓展\(K:\calX\timesX\to\mathbb{R}\)到\(\calX\)不是向量空间的情况,例如序列、图像等等。现在令\(\calX\)为字符串的集合,对应的核称为序列核sequencekernels;一种序列核的框架,称为rationalkernels,建立在称为加权转换器weightedtransduce......
  • Python学习笔记1
    a="好的,测试字符tester"b=17c=3print(a[1:5])#从第1(包含)个字符取到第5(不包含)个字符print(a[:3])#取到第3个字符(不含3)print(a[-5:-1])#取倒数第5个到倒数第1个print(a[-1:])#取最后一个字符print(len(a))#字符长度#exit()#退出与quit()一样,里面......
  • 信2105-3孟德昊阅读笔记规划
    这学期建民老师要求了我们每人进行不少于三本书的阅读,并给了我们很多的可读书籍的选择。我打算选择《软件需求》《软件需求模式》《敏捷软件需求》三本书来进行阅读,并作出相应的读书笔记,在读完之后进行认真的读书讨论,真正做到完全理解书中的内容,不是为了读书而读书,而是为了自己而......
  • 动态规划——区间DP 学习笔记
    动态规划——区间DP学习笔记不含四边形不等式优化。定义线性动态规划的局限性在于,它只能顺推或倒退,而不能有子区间依赖的问题。区间动态规划是线性动态规划的扩展,它将问题划分为若干个子区间,并通过定义状态和状态转移方程来求解每个子区间的最优解,最终得到整个区间的最优解。......
  • 读书笔记——《软件需求》其一
    《软件方法》是计算机科学领域的经典之作,由EdsgerW.Dijkstra于1975年出版。这本书对软件工程和程序设计方面的思想和方法进行了深入的研究和探讨,对于软件开发人员来说具有重要的启发和指导意义。在书中,Dijkstra强调了程序设计的正确性和可读性的重要性。他认为程序应该被认为是......
  • tarjan学习笔记
    tarjan学习笔记0.前置知识强连通图在一个有向图中,若从任意一点可以到达其他所有点,则称之为强连通图强连通分量(SCC)一个图中的极大强连通性质子图(强连通图的强连通分量是它本身)\(\small{极大强连通子图指一个不能加入另外的点的强连通子图(一个强连通子图可能包含一个或多......