emq 2.3.5参数配置详解

ops/2024/10/25 10:31:57/

EMQ X版本为【emqttd-centos6.8-v2.3.5.zip】
配置文件位置【/etc/emqx.conf】

##====================================================================
## EMQ Configuration R2
##====================================================================##--------------------------------------------------------------------
## Cluster(集群 ) 
##--------------------------------------------------------------------## Cluster nam(集群名称)
cluster.name = emqcl## Cluster auto-discovery strategy.(集群自动发现策略)
##
## Value: Enum
## - manual: Manual join command   (手动模式: 手工命令创建集群)
## - static: Static node list   ( 静态节点列表模式:配置固定的节点列表,自动发现并创建集群:)
## - mcast:  IP Multicast  (UDP组播模式)
## - dns:    DNS A Record ( DNS A 记录模式)
## - etcd:   etcd           ( 通过 etcd 自动集群)
## - k8s:    Kubernates ( Kubernetes 服务自动集群)
##
## Default: manual 
cluster.discovery = static ## Enable cluster autoheal from network partition. (支持集群脑裂自动恢复(Network Partition Autoheal))
## 集群脑裂自动恢复流程:
##    节点收到 Mnesia 库 的 inconsistent_database 事件 3 秒后进行集群脑裂确认;
##    节点确认集群脑裂发生后,向 Leader 节点(集群中最早启动节点)上报脑裂消息;
##    Leader 节点延迟一段时间后,在全部节点在线状态下创建脑裂视图(SplitView);
# #   Leader 节点在多数派(majority)分区选择集群自愈的 Coordinator 节点;
# #   Coordinator 节点重启少数派(minority)分区节点恢复集群。
## Value: on | off
##
## Default: on
cluster.autoheal = on## Autoclean down node. A down node will be removed from the cluster (从集群自动删除宕机节点(Autoclean))
## if this value > 0.
##
## Value: Duration
## -h: hour, e.g. '2h' for 2 hours
## -m: minute, e.g. '5m' for 5 minutes
## -s: second, e.g. '30s' for 30 seconds
##
## Default: 5m
cluster.autoclean = 5m##--------------------------------------------------------------------
## Cluster using static node list  (集群自动节点列表)## Node list of the cluster.
##
## Value: String
cluster.static.seeds = emq@192.168.1.19,emq@192.168.1.21##--------------------------------------------------------------------
## Cluster using IP Multicast.(UDP组播集群模式)## IP Multicast Address.  
## ip地址
## Value: IP Address
## cluster.mcast.addr = 239.192.0.1## Multicast Ports.
## 端口列表
## Value: Port List
## cluster.mcast.ports = 4369,4370## Multicast Iface.
## iface地址
## Value: Iface Address
##
## Default: 0.0.0.0
## cluster.mcast.iface = 0.0.0.0## Multicast Ttl.
## 超时时间
## Value: 0-255
## cluster.mcast.ttl = 255## Multicast loop.
## 循环开关
## Value: on | off
## cluster.mcast.loop = on##--------------------------------------------------------------------
## Cluster using DNS A records
## 基于 DNS A 记录自动发现并创建集群:## DNS name. 
## DNS名称
## Value: String
## cluster.dns.name = localhost## The App name is used to build 'node.name' with IP address.
## 指定的 APP 名
## Value: String
## cluster.dns.app = emq##--------------------------------------------------------------------
## Cluster using etcd 
## 使用 etcd 方式集群## Etcd server list, seperated by ','.
##  etcd 服务的地址
## Value: String
## cluster.etcd.server = http://127.0.0.1:2379## The prefix helps build nodes path in etcd. Each node in the cluster
## will create a path in etcd: v2/keys/<prefix>/<cluster.name>/<node.name>
## etcd 路径的前缀
## Value: String
## cluster.etcd.prefix = emqcl## The TTL for node's path in etcd.
## etcd 中节点路径的过期时间。
## Value: Duration
##
## Default: 1m, 1 minute
## cluster.etcd.node_ttl = 1m##--------------------------------------------------------------------
## Cluster using Kubernates
## k8s 方式集群## Kubernates API server list, seperated by ','.
## 指定 Kubernetes API Server
## Value: String
## cluster.k8s.apiserver = http://10.110.111.204:8080## The service name helps lookup EMQ nodes in the cluster.
## Kubernetes 中 EMQX 的服务名
## Value: String
## cluster.k8s.service_name = emq## The address type is used to extract host from k8s service.
## 从 Kubernetes 接口的应答里获取什么形式的 Host 列表。
## Value: ip | dns
## cluster.k8s.address_type = ip## The app name helps build 'node.name'.
## 指定的 app name
## Value: String
## cluster.k8s.app_name = emq## Kubernates Namespace
##  Kubernates 命名空间
## Value: String
## cluster.k8s.namespace = default##--------------------------------------------------------------------
## Node Args 节点参数
##--------------------------------------------------------------------## Node name.
## 节点名称
## See: http://erlang.org/doc/reference_manual/distributed.html
##
## Value: <name>@<host>
##
## Default: emq@127.0.0.1
node.name = emq@172.17.140.21## Cookie for distributed node communication.
## 分布式节点间通信 Cookie
## Value: String
node.cookie = emqsecretcookie## Enable SMP support of Erlang VM.
## 支持SMP
## Value: enable | auto | disable
node.smp = auto## Heartbeat monitoring of an Erlang runtime system. Comment the line to disable
## heartbeat, or set the value as 'on'
## 健康检查
## Value: on
##
## vm.args: -heart
## node.heartbeat = on## Enable kernel poll.
## 轮询
## Value: on | off
##
## Default: on
node.kernel_poll = on## Sets the number of threads in async thread pool. Valid range is 0-1024.
## 设置异步线程池中的线程数。有效范围为0-1024。
## See: http://erlang.org/doc/man/erl.html
##
## Value: 0-1024
##
## vm.args: +A Number
node.async_threads = 32## Sets the maximum number of simultaneously existing processes for this
## system if a Number is passed as value.
## 最大进程数:Erlang 虚拟机允许的最大进程数,一个 MQTT 连接会消耗 2 个 Erlang 进程,所以参数值 > 最大连接数 * 2
## See: http://erlang.org/doc/man/erl.html
##
## Value: Number [1024-134217727]
##
## vm.args: +P Number
node.process_limit = 256000## Sets the maximum number of simultaneously existing ports for this system
## if a Number is passed as value.
## Erlang 虚拟机允许的最大 Port 数量,一个 MQTT 连接消耗 1 个 Port,所以参数值 > 最大连接数
## See: http://erlang.org/doc/man/erl.html
##
## Value: Number [1024-134217727]
##
## vm.args: +Q Number
node.max_ports = 65536## Set the distribution buffer busy limit (dist_buf_busy_limit).
##
## See: http://erlang.org/doc/man/erl.html
##
## Value: Number [1KB-2GB]
##
## vm.args: +zdbbl size
node.dist_buffer_size = 8MB## Sets the maximum number of ETS tables. Note that mnesia and SSL will
## create temporary ETS tables.
##
## Value: Number
##
## vm.args: +e Number
node.max_ets_tables = 256000## Tweak GC to run more often.
##
## Value: Number [0-65535]
##
## vm.args: -env ERL_FULLSWEEP_AFTER Number
node.fullsweep_after = 1000## Crash dump log file.
##
## Value: Log file
node.crash_dump = log/crash.dump## Specify the erlang distributed protocol.
##
## Value: Enum
##  - inet_tcp: the default; handles TCP streams with IPv4 addressing.
##  - inet6_tcp: handles TCP with IPv6 addressing.
##  - inet_tls: using TLS for Erlang Distribution.
##
## vm.args: -proto_dist inet_tcp
node.proto_dist = inet_tcp## Specify SSL Options in the file if using SSL for Erlang Distribution.
##
## Value: File
##
## vm.args: -ssl_dist_optfile <File>
## node.ssl_dist_optfile = etc/ssl_dist.conf## Sets the net_kernel tick time. TickTime is specified in seconds.
## Notice that all communicating nodes are to have the same TickTime
## value specified.
##
## See: http://www.erlang.org/doc/man/kernel_app.html#net_ticktime
##
## Value: Number
##
## vm.args: -kernel net_ticktime Number
node.dist_net_ticktime = 60## Sets the port range for the listener socket of a distributed Erlang node.
## Note that if there are firewalls between clustered nodes, this port segment
## for nodes’ communication should be allowed.
##  Erlang 分布节点间通信使用 TCP 连接端口范围。注: 节点间如有防火墙,需要配置该端口段
## See: http://www.erlang.org/doc/man/kernel_app.html
##
## Value: Port [1024-65535]
node.dist_listen_min = 6369
node.dist_listen_max = 6379##--------------------------------------------------------------------
## Log 日志
##--------------------------------------------------------------------## Sets the log dir.
##
## Value: Folder
log.dir = log## Where to emit the console logs.
##
## Value: off | file | console | both
## - off: disabled
## - file: write to file
## - console: write to stdout
## - both: file and stdout
log.console = both ## Sets the severity level of console log.
##
## Value: debug | info | notice | warning | error | critical | alert | emergency
##
## Default: error
log.console.level = info ## The file where console logs will be writed to, when 'log.console' is set as 'file'.
##
## Value: File Name 
## log.console.file = log/console.log## Maximum file size for console log.
##
## Value: Number(bytes)
log.console.size = 1073741824 ## The rotation count for console log.
##
## Value: Number
## log.console.count = 5## The file where info logs will be writed to.
##
## Value: File Name
## log.info.file = log/info.log## Maximum file size for info log.
##
## Value: Number(bytes)
## log.info.size = 10485760## The rotation count for info log.
##
## Value: Number
## log.info.count = 5## The file where error logs will be writed to.
##
## Value: File Name
log.error.file = log/error.log## Maximum file size for error log.
##
## Value: Number(bytes)
log.error.size = 10485760## The rotation count for error log.
##
## Value: Number
log.error.count = 5## Enable the crash log.
##
## Value: on | off
log.crash = on## The file for crash log.
##
## Value: File Name
log.crash.file = log/crash.log## Enable syslog.
##
## Values: on | off
log.syslog = on## Sets the severity level for syslog.
##
## Value: debug | info | notice | warning | error | critical | alert | emergency
log.syslog.level = error##--------------------------------------------------------------------
## Allow Anonymous Authentication and Default ACL 
##  允许匿名身份验证和默认ACL
##--------------------------------------------------------------------## Allow Anonymous Authentication.
## 允许匿名身份验证 
## Notice: Disable the option for production deployment.
##
## Value: true | false
mqtt.allow_anonymous = true## Default behaviour when ACL nomatch.
## ACL正常匹配时的默认行为。
## Value: allow | deny
mqtt.acl_nomatch = allow## Default ACL File.
##
## Value: File Name
mqtt.acl_file = etc/acl.conf## Whether to cache ACL for publish messages.
##
## Value: true | false
mqtt.cache_acl = true##--------------------------------------------------------------------
## MQTT Protocol
##--------------------------------------------------------------------## Maximum length of MQTT clientId allowed.
##
## Value: Number [23-65535]
mqtt.max_clientid_len = 1024## Maximum MQTT packet size allowed.
##
## Value: Bytes
##
## Default: 64K
mqtt.max_packet_size = 64KB## Check if the websocket protocol header is valid.
## Turn off the option when developing WeChat App.
##
## Value: on | off
mqtt.websocket_protocol_header = on## The backoff for MQTT keepalive timeout.
## EMQ will kick a MQTT connection out until 'Keepalive * backoff * 2' timeout.
##
## Value: Float > 0.5
mqtt.keepalive_backoff = 0.75##--------------------------------------------------------------------
## MQTT Connection
##--------------------------------------------------------------------## Force GC the MQTT connections. Value 0 will disable the Force GC.
##
## Value: Number >= 0 
mqtt.conn.force_gc_count = 100##--------------------------------------------------------------------
## MQTT Client
##--------------------------------------------------------------------## MQTT client idle timeout, specified in seconds.
##
## Value: Duration
mqtt.client.idle_timeout = 30s## TODO: Maximum publish rate of MQTT messages per second.
##
## Value: Number
## mqtt.client.max_publish_rate = 5## Enable per client statistics.
##
## Value:  on | off
mqtt.client.enable_stats = off##--------------------------------------------------------------------
## MQTT Session
##--------------------------------------------------------------------## Maximum number of subscriptions allowed, 0 means no limit.
##
## Value: Number
mqtt.session.max_subscriptions = 0## Force to upgrade QoS according to subscription.
##
## Value: on | off
mqtt.session.upgrade_qos = off## Maximum size of the Inflight Window storing QoS1/2 messages delivered but unacked.
##
## Value: Number
mqtt.session.max_inflight = 32## Retry interval for QoS1/2 message delivering.
##
## Value: Duration
mqtt.session.retry_interval = 20s## Maximum QoS2 packets (Client -> Broker) awaiting PUBREL, 0 means no limit.
##
## Value: Number
mqtt.session.max_awaiting_rel = 1000## The QoS2 messages (Client -> Broker) will be dropped if awaiting PUBREL timeout.
##
## Value: Duration
mqtt.session.await_rel_timeout = 30s## Enable per session statistics.
##
## Value: on | off
mqtt.session.enable_stats = on## Session expiration time.
##
## Value: Duration
## -d: day
## -h: hour
## -m: minute
## -s: second
##
## Default: 2h, 2 hours
mqtt.session.expiry_interval = 2h## Whether to ignore loop delivery of messages.
##
## Value: true | false
##
## Default: false
mqtt.session.ignore_loop_deliver = false##--------------------------------------------------------------------
## MQTT Message Queue
##--------------------------------------------------------------------## Message queue type.
##
## Value: simple | priority
mqtt.mqueue.type = simple## Topic priority. Default is 0.
##
## Value: Number [0-255]
##
## mqtt.mqueue.priority = topic/1=10,topic/2=8## Maximum queue length. Enqueued messages when persistent client disconnected,
## or inflight window is full. 0 means no limit.
##
## Value: Number >= 0
mqtt.mqueue.max_length = 1000## Low-water mark of queued messages.
##
## Value: Percent
mqtt.mqueue.low_watermark = 20%## High-water mark of queued messages.
##
## Value: Percent
mqtt.mqueue.high_watermark = 60%## Whether to enqueue Qos0 messages.
##
## Value: false | true
mqtt.mqueue.store_qos0 = true##--------------------------------------------------------------------
## MQTT Broker and PubSub
##--------------------------------------------------------------------## System interval of publishing $SYS messages.
##
## Value: Duration
##
## Default: 1m, 1 minute
mqtt.broker.sys_interval = 1m## The PubSub pool size. Default value should be same as scheduler numbers.
##
## Value: Number > 1
mqtt.pubsub.pool_size = 8## TODO: Subscribe asynchronously.
##
## Value: true | false
mqtt.pubsub.async = true##--------------------------------------------------------------------
## MQTT Bridge
##--------------------------------------------------------------------## The pending message queue size of bridge.
##
## Value: Number
mqtt.bridge.max_queue_len = 10000## Ping interval of bridge node.
##
## Value: Duration
##
## Default: 1s, 1 second
mqtt.bridge.ping_down_interval = 1s##-------------------------------------------------------------------
## MQTT Plugins
##-------------------------------------------------------------------## The etc dir for plugins' config.
##
## Value: Folder
mqtt.plugins.etc_dir =etc/plugins/## The file to store loaded plugin names.
##
## Value: File
mqtt.plugins.loaded_file = data/loaded_plugins##--------------------------------------------------------------------
## MQTT Listeners
##--------------------------------------------------------------------##--------------------------------------------------------------------
## MQTT/TCP - External TCP Listener for MQTT Protocol## listener.tcp.<name> is the IP address and port that the MQTT/TCP
## listener will bind.
##
## Value: IP:Port | Port
##
## Examples: 1883, 127.0.0.1:1883, ::1:1883
listener.tcp.external = 0.0.0.0:1883## The acceptor pool for external MQTT/TCP listener.
##
## Value: Number
listener.tcp.external.acceptors = 16## Maximum number of concurrent MQTT/TCP connections.
##
## Value: Number
listener.tcp.external.max_clients = 102400## TODO: Zone of the external MQTT/TCP listener belonged to.
##
## Value: String
## listener.tcp.external.zone = external## Mountpoint of the MQTT/TCP Listener. All the topics of this
## listener will be prefixed with the mount point if this option
## is enabled.
##
## Value: String
## listener.tcp.external.mountpoint = external/## Rate limit for the external MQTT/TCP connections.
## Format is 'burst,rate'.
##
## Value: burst,rate
## Unit: KB/sec
## listener.tcp.external.rate_limit = 100,10## The access control rules for the MQTT/TCP listener.
##
## See: https://github.com/emqtt/esockd#allowdeny
##
## Value: ACL Rule
##
## Example: allow 192.168.0.0/24
listener.tcp.external.access.1 = allow all## Enable the Proxy Protocol V1/2 if the EMQ cluster is deployed
## behind HAProxy or Nginx.
##
## See: https://www.haproxy.com/blog/haproxy/proxy-protocol/
##
## Value: on | off
## listener.tcp.external.proxy_protocol = on## Sets the timeout for proxy protocol. EMQ will close the TCP connection
## if no proxy protocol packet recevied within the timeout.
##
## Value: Duration
## listener.tcp.external.proxy_protocol_timeout = 3s## Enable the option for X.509 certificate based authentication.
## EMQ will Use the PP2_SUBTYPE_SSL_CN field in Proxy Protocol V2
## as MQTT username.
##
## Value: cn
## listener.tcp.external.peer_cert_as_username = cn## The TCP backlog defines the maximum length that the queue of pending
## connections can grow to.
##
## Value: Number >= 0
listener.tcp.external.backlog = 1024## The TCP send timeout for external MQTT connections.
##
## Value: Duration
listener.tcp.external.send_timeout = 15s## Close the TCP connection if send timeout.
##
## Value: on | off
listener.tcp.external.send_timeout_close = on## The TCP receive buffer(os kernel) for MQTT connections.
##
## See: http://erlang.org/doc/man/inet.html
##
## Value: Bytes
## listener.tcp.external.recbuf = 4KB## The TCP send buffer(os kernel) for MQTT connections.
##
## See: http://erlang.org/doc/man/inet.html
##
## Value: Bytes
## listener.tcp.external.sndbuf = 4KB## The size of the user-level software buffer used by the driver.
## Not to be confused with options sndbuf and recbuf, which correspond
## to the Kernel socket buffers. It is recommended to have val(buffer)
## >= max(val(sndbuf),val(recbuf)) to avoid performance issues because
## of unnecessary copying. val(buffer) is automatically set to the above
## maximum when values sndbuf or recbuf are set.
##
## See: http://erlang.org/doc/man/inet.html
##
## Value: Bytes
## listener.tcp.external.buffer = 4KB## Sets the 'buffer = max(sndbuf, recbuf)' if this option is enabled.
##
## Value: on | off
## listener.tcp.external.tune_buffer = off## The TCP_NODELAY flag for MQTT connections. Small amounts of data are
## sent immediately if the option is enabled.
##
## Value: true | false
listener.tcp.external.nodelay = true## The SO_REUSEADDR flag for TCP listener.
##
## Value: true | false
listener.tcp.external.reuseaddr = true##--------------------------------------------------------------------
## Internal TCP Listener for MQTT Protocol## The IP address and port that the internal MQTT/TCP protocol listener
## will bind.
##
## Value: IP:Port, Port
##
## Examples: 11883, 127.0.0.1:11883, ::1:11883
listener.tcp.internal = 127.0.0.1:11883## The acceptor pool for internal MQTT/TCP listener.
##
## Value: Number
listener.tcp.internal.acceptors = 4## Maximum number of concurrent MQTT/TCP connections.
##
## Value: Number
listener.tcp.internal.max_clients = 102400## TODO: Zone of the internal MQTT/TCP listener belonged to.
##
## Value: String
## listener.tcp.internal.zone = internal## Mountpoint of the MQTT/TCP Listener.
##
## See: listener.tcp.<name>.mountpoint
##
## Value: String
## listener.tcp.internal.mountpoint = internal/## Rate limit for the internal MQTT/TCP connections.
##
## See: listener.tcp.<name>.rate_limit
##
## Value: burst,rate
## listener.tcp.internal.rate_limit = 1000,100## The TCP backlog of internal MQTT/TCP Listener.
##
## See: listener.tcp.<name>.backlog
##
## Value: Number >= 0
listener.tcp.internal.backlog = 512## The TCP send timeout for internal MQTT connections.
##
## See: listener.tcp.<name>.send_timeout
##
## Value: Duration
listener.tcp.internal.send_timeout = 5s## Close the MQTT/TCP connection if send timeout.
##
## See: listener.tcp.<name>.send_timeout_close
##
## Value: on | off
listener.tcp.external.send_timeout_close = on## The TCP receive buffer(os kernel) for internal MQTT connections.
##
## See: listener.tcp.<name>.recbuf
##
## Value: Bytes
## listener.tcp.internal.recbuf = 16KB## The TCP send buffer(os kernel) for internal MQTT connections.
##
## See: http://erlang.org/doc/man/inet.html
##
## Value: Bytes
## listener.tcp.internal.sndbuf = 16KB## The size of the user-level software buffer used by the driver.
##
## See: listener.tcp.<name>.buffer
##
## Value: Bytes
## listener.tcp.internal.buffer = 16KB## Sets the 'buffer = max(sndbuf, recbuf)' if this option is enabled.
##
## See: listener.tcp.<name>.tune_buffer
##
## Value: on | off
## listener.tcp.internal.tune_buffer = off## The TCP_NODELAY flag for internal MQTT connections.
##
## See: listener.tcp.<name>.nodelay
##
## Value: true | false
listener.tcp.internal.nodelay = false## The SO_REUSEADDR flag for MQTT/TCP Listener.
##
## Value: true | false
listener.tcp.internal.reuseaddr = true##--------------------------------------------------------------------
## MQTT/SSL - External SSL Listener for MQTT Protocol## listener.ssl.<name> is the IP address and port that the MQTT/SSL
## listener will bind.
##
## Value: IP:Port | Port
##
## Examples: 8883, 127.0.0.1:8883, ::1:8883
listener.ssl.external = 8883## The acceptor pool for external MQTT/SSL listener.
##
## Value: Number
listener.ssl.external.acceptors = 16## Maximum number of concurrent MQTT/SSL connections.
##
## Value: Number
listener.ssl.external.max_clients = 1024## TODO: Zone of the external MQTT/SSL listener belonged to.
##
## Value: String
## listener.ssl.external.zone = external## Mountpoint of the MQTT/SSL Listener.
##
## Value: String
## listener.ssl.external.mountpoint = inbound/## The access control rules for the MQTT/SSL listener.
##
## See: listener.tcp.<name>.access
##
## Value: ACL Rule
listener.ssl.external.access.1 = allow all## Rate limit for the external MQTT/SSL connections.
##
## Value: burst,rate
## listener.ssl.external.rate_limit = 100,10## Enable the Proxy Protocol V1/2 if the EMQ cluster is deployed behind
## HAProxy or Nginx.
##
## See: listener.tcp.<name>.proxy_protocol
##
## Value: on | off
## listener.ssl.external.proxy_protocol = on## Sets the timeout for proxy protocol.
##
## See: listener.tcp.<name>.proxy_protocol_timeout
##
## Value: Duration
## listener.ssl.external.proxy_protocol_timeout = 3s## TLS versions only to protect from POODLE attack.
##
## See: http://erlang.org/doc/man/ssl.html
##
## Value: String, seperated by ','
## listener.ssl.external.tls_versions = tlsv1.2,tlsv1.1,tlsv1## TLS Handshake timeout.
##
## Value: Duration
listener.ssl.external.handshake_timeout = 15s## Path to the file containing the user's private PEM-encoded key.
##
## See: http://erlang.org/doc/man/ssl.html
##
## Value: File
listener.ssl.external.keyfile = etc/certs/key.pem## Path to a file containing the user certificate.
##
## See: http://erlang.org/doc/man/ssl.html
##
## Value: File
listener.ssl.external.certfile = etc/certs/cert.pem## Path to the file containing PEM-encoded CA certificates. The CA certificates
## are used during server authentication and when building the client certificate chain.
##
## Value: File
## listener.ssl.external.cacertfile = etc/certs/cacert.pem## The Ephemeral Diffie-Helman key exchange is a very effective way of
## ensuring Forward Secrecy by exchanging a set of keys that never hit
## the wire. Since the DH key is effectively signed by the private key,
## it needs to be at least as strong as the private key. In addition,
## the default DH groups that most of the OpenSSL installations have
## are only a handful (since they are distributed with the OpenSSL
## package that has been built for the operating system it’s running on)
## and hence predictable (not to mention, 1024 bits only).
## In order to escape this situation, first we need to generate a fresh,
## strong DH group, store it in a file and then use the option above,
## to force our SSL application to use the new DH group. Fortunately,
## OpenSSL provides us with a tool to do that. Simply run:
## openssl dhparam -out dh-params.pem 2048
##
## Value: File
## listener.ssl.external.dhfile = etc/certs/dh-params.pem## A server only does x509-path validation in mode verify_peer,
## as it then sends a certificate request to the client (this
## message is not sent if the verify option is verify_none).
## You can then also want to specify option fail_if_no_peer_cert.
## More information at: http://erlang.org/doc/man/ssl.html
##
## Value: verify_peer | verify_none
## listener.ssl.external.verify = verify_peer## Used together with {verify, verify_peer} by an SSL server. If set to true,
## the server fails if the client does not have a certificate to send, that is,
## sends an empty certificate.
##
## Value: true | false
## listener.ssl.external.fail_if_no_peer_cert = true## This is the single most important configuration option of an Erlang SSL
## application. Ciphers (and their ordering) define the way the client and
## server encrypt information over the wire, from the initial Diffie-Helman
## key exchange, the session key encryption ## algorithm and the message
## digest algorithm. Selecting a good cipher suite is critical for the
## application’s data security, confidentiality and performance.
##
## The cipher list above offers:
##
## A good balance between compatibility with older browsers.
## It can get stricter for Machine-To-Machine scenarios.
## Perfect Forward Secrecy.
## No old/insecure encryption and HMAC algorithms
##
## Most of it was copied from Mozilla’s Server Side TLS article
##
## Value: Ciphers
## listener.ssl.external.ciphers = ECDHE-ECDSA-AES256-GCM-SHA384,ECDHE-RSA-AES256-GCM-SHA384,ECDHE-ECDSA-AES256-SHA384,ECDHE-RSA-AES256-SHA384,ECDHE-ECDSA-DES-CBC3-SHA,ECDH-ECDSA-AES256-GCM-SHA384,ECDH-RSA-AES256-GCM-SHA384,ECDH-ECDSA-AES256-SHA384,ECDH-RSA-AES256-SHA384,DHE-DSS-AES256-GCM-SHA384,DHE-DSS-AES256-SHA256,AES256-GCM-SHA384,AES256-SHA256,ECDHE-ECDSA-AES128-GCM-SHA256,ECDHE-RSA-AES128-GCM-SHA256,ECDHE-ECDSA-AES128-SHA256,ECDHE-RSA-AES128-SHA256,ECDH-ECDSA-AES128-GCM-SHA256,ECDH-RSA-AES128-GCM-SHA256,ECDH-ECDSA-AES128-SHA256,ECDH-RSA-AES128-SHA256,DHE-DSS-AES128-GCM-SHA256,DHE-DSS-AES128-SHA256,AES128-GCM-SHA256,AES128-SHA256,ECDHE-ECDSA-AES256-SHA,ECDHE-RSA-AES256-SHA,DHE-DSS-AES256-SHA,ECDH-ECDSA-AES256-SHA,ECDH-RSA-AES256-SHA,AES256-SHA,ECDHE-ECDSA-AES128-SHA,ECDHE-RSA-AES128-SHA,DHE-DSS-AES128-SHA,ECDH-ECDSA-AES128-SHA,ECDH-RSA-AES128-SHA,AES128-SHA## SSL parameter renegotiation is a feature that allows a client and a server
## to renegotiate the parameters of the SSL connection on the fly.
## RFC 5746 defines a more secure way of doing this. By enabling secure renegotiation,
## you drop support for the insecure renegotiation, prone to MitM attacks.
##
## Value: on | off
## listener.ssl.external.secure_renegotiate = off## A performance optimization setting, it allows clients to reuse
## pre-existing sessions, instead of initializing new ones.
## Read more about it here.
##
## See: http://erlang.org/doc/man/ssl.html
##
## Value: on | off
## listener.ssl.external.reuse_sessions = on## An important security setting, it forces the cipher to be set based
## on the server-specified order instead of the client-specified order,
## hence enforcing the (usually more properly configured) security
## ordering of the server administrator.
##
## Value: on | off
## listener.ssl.external.honor_cipher_order = on## Use the CN or DN value from the client certificate as a username.
## Notice that 'verify' should be set as 'verify_peer'.
##
## Value: cn | dn
## listener.ssl.external.peer_cert_as_username = cn## TCP backlog for the SSL connection.
##
## See listener.tcp.<name>.backlog
##
## Value: Number >= 0
## listener.ssl.external.backlog = 1024## The TCP send timeout for the SSL connection.
##
## See listener.tcp.<name>.send_timeout
##
## Value: Duration
## listener.ssl.external.send_timeout = 15s## Close the SSL connection if send timeout.
##
## See: listener.tcp.<name>.send_timeout_close
##
## Value: on | off
## listener.ssl.external.send_timeout_close = on## The TCP receive buffer(os kernel) for the SSL connections.
##
## See: listener.tcp.<name>.recbuf
##
## Value: Bytes
## listener.ssl.external.recbuf = 4KB## The TCP send buffer(os kernel) for internal MQTT connections.
##
## See: listener.tcp.<name>.sndbuf
##
## Value: Bytes
## listener.ssl.external.sndbuf = 4KB## The size of the user-level software buffer used by the driver.
##
## See: listener.tcp.<name>.buffer
##
## Value: Bytes
## listener.ssl.external.buffer = 4KB## Sets the 'buffer = max(sndbuf, recbuf)' if this option is enabled.
##
## See: listener.tcp.<name>.tune_buffer
##
## Value: on | off
## listener.ssl.external.tune_buffer = off## The TCP_NODELAY flag for SSL connections.
##
## See: listener.tcp.<name>.nodelay
##
## Value: true | false
## listener.ssl.external.nodelay = true## The SO_REUSEADDR flag for MQTT/SSL Listener.
##
## Value: true | false
listener.ssl.external.reuseaddr = true##--------------------------------------------------------------------
## External WebSocket Listener for MQTT Protocol## listener.ws.<name> is the IP address and port that the MQTT/WebSocket
## listener will bind.
##
## Value: IP:Port | Port
##
## Examples: 8083, 127.0.0.1:8083, ::1:8083
listener.ws.external = 8083## The acceptor pool for external MQTT/WebSocket listener.
##
## Value: Number
listener.ws.external.acceptors = 4## Maximum number of concurrent MQTT/WebSocket connections.
##
## Value: Number
listener.ws.external.max_clients = 102400## TODO: Zone of the external MQTT/WebSocket listener belonged to.
##
## Value: String
## listener.ws.external.zone = external## Mountpoint of the MQTT/WebSocket Listener.
##
## See: listener.tcp.<name>.mountpoint
##
## Value: String
## listener.ws.external.mountpoint = external/## The access control for the MQTT/WebSocket listener.
##
## See: listener.tcp.<name>.access
##
## Value: ACL Rule
listener.ws.external.access.1 = allow all## Use X-Forwarded-For header for real source IP if the EMQ cluster is
## deployed behind NGINX or HAProxy.
##
## Value: String
## listener.ws.external.proxy_address_header = X-Forwarded-For## Use X-Forwarded-Port header for real source port if the EMQ cluster is
## deployed behind NGINX or HAProxy.
##
## Value: String
## listener.ws.external.proxy_port_header = X-Forwarded-Port## Enable the Proxy Protocol V1/2 if the EMQ cluster is deployed behind
## HAProxy or Nginx.
##
## See: listener.tcp.<name>.proxy_protocol
##
## Value: on | off
## listener.ws.external.proxy_protocol = on## Sets the timeout for proxy protocol.
##
## See: listener.tcp.<name>.proxy_protocol_timeout
##
## Value: Duration
## listener.ws.external.proxy_protocol_timeout = 3s## The TCP backlog of external MQTT/WebSocket Listener.
##
## See: listener.tcp.<name>.backlog
##
## Value: Number >= 0
listener.ws.external.backlog = 1024## The TCP send timeout for external MQTT/WebSocket connections.
##
## See: listener.tcp.<name>.send_timeout
##
## Value: Duration
listener.ws.external.send_timeout = 15s## Close the MQTT/WebSocket connection if send timeout.
##
## See: listener.tcp.<name>.send_timeout_close
##
## Value: on | off
listener.ws.external.send_timeout_close = on## The TCP receive buffer(os kernel) for external MQTT/WebSocket connections.
##
## See: listener.tcp.<name>.recbuf
##
## Value: Bytes
## listener.ws.external.recbuf = 4KB## The TCP send buffer(os kernel) for external MQTT/WebSocket connections.
##
## See: listener.tcp.<name>.sndbuf
##
## Value: Bytes
## listener.ws.external.sndbuf = 4KB## The size of the user-level software buffer used by the driver.
##
## See: listener.tcp.<name>.buffer
##
## Value: Bytes
## listener.ws.external.buffer = 4KB## Sets the 'buffer = max(sndbuf, recbuf)' if this option is enabled.
##
## See: listener.tcp.<name>.tune_buffer
##
## Value: on | off
## listener.ws.external.tune_buffer = off## The TCP_NODELAY flag for external MQTT/WebSocket connections.
##
## See: listener.tcp.<name>.nodelay
##
## Value: true | false
listener.ws.external.nodelay = true## The SO_REUSEADDR flag for MQTT/WebSocket Listener.
##
## Value: true | false
listener.ws.external.reuseaddr = true##--------------------------------------------------------------------
## External WebSocket/SSL listener for MQTT Protocol## listener.wss.<name> is the IP address and port that the MQTT/WebSocket/SSL
## listener will bind.
##
## Value: IP:Port | Port
##
## Examples: 8084, 127.0.0.1:8084, ::1:8084
listener.wss.external = 8084## The acceptor pool for external MQTT/WebSocket/SSL listener.
##
## Value: Number
listener.wss.external.acceptors = 4## Maximum number of concurrent MQTT/Webwocket/SSL connections.
##
## Value: Number
listener.wss.external.max_clients = 64## TODO: Zone of the external MQTT/WebSocket/SSL listener belonged to.
##
## Value: String
## listener.wss.external.zone = external## Mountpoint of the MQTT/WebSocket/SSL Listener.
##
## See: listener.tcp.<name>.mountpoint
##
## Value: String
## listener.wss.external.mountpoint = inbound/## The access control rules for the MQTT/WebSocket/SSL listener.
##
## See: listener.tcp.<name>.access.<no>
##
## Value: ACL Rule
listener.wss.external.access.1 = allow all## See: listener.ws.external.proxy_address_header
##
## Value: String
## listener.wss.external.proxy_address_header = X-Forwarded-For## See: listener.ws.external.proxy_port_header
##
## Value: String
## listener.wss.external.proxy_port_header = X-Forwarded-Port## Enable the Proxy Protocol V1/2 support.
##
## See: listener.tcp.<name>.proxy_protocol
##
## Value: on | off
## listener.wss.external.proxy_protocol = on## Sets the timeout for proxy protocol.
##
## See: listener.tcp.<name>.proxy_protocol_timeout
##
## Value: Duration
## listener.wss.external.proxy_protocol_timeout = 3s## TLS versions only to protect from POODLE attack.
##
## See: listener.ssl.<name>.tls_versions
##
## Value: String, seperated by ','
## listener.wss.external.tls_versions = tlsv1.2,tlsv1.1,tlsv1## TLS Handshake timeout.
##
## See: listener.ssl.<name>.handshake_timeout
##
## Value: Duration
listener.wss.external.handshake_timeout = 15s## Path to the file containing the user's private PEM-encoded key.
##
## See: listener.ssl.<name>.keyfile
##
## Value: File
listener.wss.external.keyfile = etc/certs/key.pem## Path to a file containing the user certificate.
##
## See: listener.ssl.<name>.certfile
##
## Value: File
listener.wss.external.certfile = etc/certs/cert.pem## Path to the file containing PEM-encoded CA certificates.
##
## See: listener.ssl.<name>.cacert
##
## Value: File
## listener.wss.external.cacertfile = etc/certs/cacert.pem## See: listener.ssl.<name>.dhfile
##
## Value: File
## listener.ssl.external.dhfile = etc/certs/dh-params.pem## See: listener.ssl.<name>.vefify
##
## Value: vefify_peer | verify_none
## listener.wss.external.verify = verify_peer## See: listener.ssl.<name>.fail_if_no_peer_cert
##
## Value: false | true
## listener.wss.external.fail_if_no_peer_cert = true## See: listener.ssl.<name>.ciphers
##
## Value: Ciphers
## listener.wss.external.ciphers =## See: listener.ssl.<name>.secure_renegotiate
##
## Value: on | off
## listener.wss.external.secure_renegotiate = off## See: listener.ssl.<name>.reuse_sessions
##
## Value: on | off
## listener.wss.external.reuse_sessions = on## See: listener.ssl.<name>.honor_cipher_order
##
## Value: on | off
## listener.wss.external.honor_cipher_order = on## See: listener.ssl.<name>.peer_cert_as_username
##
## Value: cn | dn
## listener.wss.external.peer_cert_as_username = cn## TCP backlog for the WebSocket/SSL connection.
##
## See listener.tcp.<name>.backlog
##
## Value: Number >= 0
listener.wss.external.backlog = 1024## The TCP send timeout for the WebSocket/SSL connection.
##
## See: listener.tcp.<name>.send_timeout
##
## Value: Duration
listener.wss.external.send_timeout = 15s## Close the WebSocket/SSL connection if send timeout.
##
## See: listener.tcp.<name>.send_timeout_close
##
## Value: on | off
listener.wss.external.send_timeout_close = on## The TCP receive buffer(os kernel) for the WebSocket/SSL connections.
##
## See: listener.tcp.<name>.recbuf
##
## Value: Bytes
## listener.wss.external.recbuf = 4KB## The TCP send buffer(os kernel) for the WebSocket/SSL connections.
##
## See: listener.tcp.<name>.sndbuf
##
## Value: Bytes
## listener.wss.external.sndbuf = 4KB## The size of the user-level software buffer used by the driver.
##
## See: listener.tcp.<name>.buffer
##
## Value: Bytes
## listener.wss.external.buffer = 4KB## The TCP_NODELAY flag for WebSocket/SSL connections.
##
## See: listener.tcp.<name>.nodelay
##
## Value: true | false
## listener.wss.external.nodelay = true## The SO_REUSEADDR flag for WebSocket/SSL listener.
##
## Value: true | false
listener.wss.external.reuseaddr = true##--------------------------------------------------------------------
## HTTP Management API Listener## The IP Address and Port that the EMQ HTTP API will bind.
##
## Value: IP:Port | Port
##
## Default: 0.0.0.0:8080
listener.api.mgmt = 0.0.0.0:8080## The TCP Acceptor pool size.
##
## Value: Number
listener.api.mgmt.acceptors = 4## Maximum concurrent HTTP clients allowed.
##
## Value: Number
listener.api.mgmt.max_clients = 64## The access control rules for the listener.
##
## See: https://github.com/emqtt/esockd#allowdeny
##
## Value: ACL Rule
listener.api.mgmt.access.1 = allow all## The TCP backlog for HTTP API.
##
## Value: Number >= 0
listener.api.mgmt.backlog = 512## The TCP send timeout for HTTP API.
##
## Value: Duration
listener.api.mgmt.send_timeout = 15s## Close the TCP connection if send timeout.
##
## Value: on | off
listener.api.mgmt.send_timeout_close = on##-------------------------------------------------------------------
## System Monitor
##-------------------------------------------------------------------## Enable Long GC monitoring.
## Notice: don't enable the monitor in production for:
## https://github.com/erlang/otp/blob/feb45017da36be78d4c5784d758ede619fa7bfd3/erts/emulator/beam/erl_gc.c#L421
##
## Value: true | false
sysmon.long_gc = false## Enable Long Schedule(ms) monitoring.
##
## See: http://erlang.org/doc/man/erlang.html#system_monitor-2
##
## Value: Number
sysmon.long_schedule = 240## Enable Large Heap monitoring.
##
## See: http://erlang.org/doc/man/erlang.html#system_monitor-2
##
## Value: bytes
##
## Default: 8M words. 32MB on 32-bit VM, 64MB on 64-bit VM.
sysmon.large_heap = 8MB## Enable Busy Port monitoring.
##
## See: http://erlang.org/doc/man/erlang.html#system_monitor-2
##
## Value: true | false
sysmon.busy_port = false## Enable Busy Dist Port monitoring.
##
## See: http://erlang.org/doc/man/erlang.html#system_monitor-2
##
## Value: true | false
sysmon.busy_dist_port = true

http://www.ppmy.cn/ops/117923.html

相关文章

一,初始 MyBatis-Plus

一&#xff0c;初始 MyBatis-Plus 文章目录 一&#xff0c;初始 MyBatis-Plus1. MyBatis-Plus 的概述2. 入门配置第一个 MyBatis-Plus 案例3. 补充说明&#xff1a;3.1 通用 Mapper 接口介绍3.1.1 Mapper 接口的 “增删改查”3.1.1.1 查询所有记录3.1.1.2 插入一条数据3.1.1.3 …

Git No newline at end of file

Git No newline at end of file 通过 IDE 修改代码&#xff0c;保存之后 在 git 查看 diff 发现&#xff0c;之前的所有代码显示 删除&#xff0c;然后重新添加&#xff0c;并且最后一行显示 No newline at end of file 这个是换行符问题 解决方案 打开命令行执行下面命令 …

【STM32 Blue Pill编程实例】-手机通过HC-05串口蓝牙控制LED

手机通过HC-05串口蓝牙控制LED 文章目录 手机通过HC-05串口蓝牙控制LED1、HC-05串口蓝牙模块介绍2、硬件准备和接线3、模块配置4、代码实现5、手机控制在本文中,我们介绍如何使用 STM32CubeIDE 和 HAL 库将 HC-05 蓝牙模块与 STM32 Blue Pill 开发板连接。 我们将使用 Android…

JavaFX 如何加载系统资源

简介 问题描述&#xff1a;JavaFX 加载图片资源异常&#xff0c;即使路径正确 如何解决&#xff1a;使用反射 API 如何解决 import javafx.scene.image.Image; import org.junit.jupiter.api.Test;import java.util.Objects;public class ImageTest {Testvoid name() {Image…

smb文件夹共享设置

UOS统信三种不同场景的文件夹共享,分别是:1、UOS系统间的文件共享;2、Windows7系统访问UOS共享的文件;3、UOS系统访问Windows7共享的文件 文章目录 第二种场景:Windows7系统访问UOS共享的文件步骤一:设置共享密码步骤二:输入共享IP地址步骤三:输入网络密码步骤四:共享…

.NET 6.0 MVC使用Cookie进行身份验证

一般而言MVC 是不与其他系统发生数据交互&#xff0c;所以使用Cookie验证即可&#xff0c;无需安装拓展。 1.Program里面注册服务 //1.选择使用那种方式来身份验证 builder.Services.AddAuthentication(option > {option.DefaultAuthenticateScheme CookieAuthentication…

正则表达式【详细解读】

目录 正则表达式是什么&#xff1f; 基本概念 主要用途 正则表达式的元字符 核心的元字符及其功能&#xff1a; 重复限定符: 重复限定符案例 位置匹配: 位置匹配案例 字符集与否定: 字符集与否定案例 特殊字符: 特殊字符案例 分组与引用: 分组与引用案例 前瞻与…

【刷题2—滑动窗口】最大连续1的个数lll、将x减到0的最小操作数

目录 一、最大连续1的个数lll二、将x减到0的最小操作数 一、最大连续1的个数lll 题目&#xff1a; 思路&#xff1a; 问题转换为&#xff1a;找到一个最长子数组&#xff0c;这个数组里面0的个数不能超过k个 定义一个变量count&#xff0c;来记录0的个数&#xff0c;进窗口、…