##相关文档指南:http://rabbitmq.com/configure.html。看到 ## http://rabbitmq.com/documentation.html文档ToC。 ## 联网 ## ==================== ## ##相关文档指南:http://rabbitmq.com/networking.html。 ## ##默认情况下,RabbitMQ将使用侦听所有接口 ##标准(保留)AMQP 0-9-1和1.0端口。 ## #listeners.tcp.default = 5672 ##要监听特定的接口,请提供带有端口的IP地址。 ##例如,只在本地主机上侦听IPv4和IPv6: ## #IPv4 #listeners.tcp. local = 127.0.0.1:5672 #IPv6 #listeners.tcp.local_v6 = :: 1:5672 ##您可以使用侦听器名称定义多个侦听器 #listeners.tcp.other_port = 5673 #listeners.tcp.other_ip = 10.10.10.10:5672 ## TLS监听器的配置方式与TCP监听器相同, ##包括控制界面选择的选项。 ## #listeners.ssl.default = 5671 ##将接受TCP连接的Erlang进程的数量 ##和TLS监听器。 ## #num_acceptors.tcp = 10 #num_acceptors.ssl = 1 ## AMQP 0-8 / 0-9 / 0-9-1握手的最大时间(套接字连接后) ##和TLS握手),以毫秒为单位。 ## #handshake_timeout = 10000 ##设置为'true'在接受a时执行反向DNS查询 ##连接。主机名将被显示,而不是IP地址 在rabbitmqctl中的 ##和管理插件。 ## #reverse_dns_lookups = true ## ##安全,访问控制 ## ============== ## ##相关文档指南:http://rabbitmq.com/access-control.html。 ##默认的“访客”用户只能访问服务器 ##通过一个回送接口(例如本地主机)。 ## {loopback_users,[<<“guest”>>]}, ## #loopback_users.guest = true ##如果您想允许访问,请取消注释以下行 ##来宾用户从网络上的任何地方。 #loopback_users.guest = false ## TLS配置。 ## ##相关文档指南:http://rabbitmq.com/ssl.html。 ## #ssl_options.verify = verify_peer #ssl_options.fail_if_no_peer_cert = false #ssl_options.cacertfile = /path/to/cacert .pem #ssl_options.certfile = /path/to/cert .pem #ssl_options.keyfile = /path/to/key .pem ##选择要使用的认证/授权后端。 ## ##备用后端由插件提供,例如rabbitmq-auth-backend-ldap。 ## ##注意:这些设置需要启用某些插件。 ## ##相关文档指南: ## ## * http://rabbitmq.com/plugins.html ## * http://rabbitmq.com/access-control.html ## #auth_backends.1 = rabbit_auth_backend_internal ##使用单独的后端进行身份验证和授权, ## 见下文。 #auth_backends.1.authn = rabbit_auth_backend_ldap #auth_backends.1.authz = rabbit_auth_backend_internal ## rabbitmq_auth_backend_ldap插件允许经纪人 ##通过推迟到一个执行认证和授权 ##外部LDAP服务器。 ## ##相关文档指南: ## ## * http://rabbitmq.com/ldap.html ## * http://rabbitmq.com/access-control.html ## ##使用LDAP进行身份验证和授权 #auth_backends.1 = rabbit_auth_backend_ldap ##使用HTTP服务进行身份验证和 ##授权 #auth_backends.1 = rabbit_auth_backend_http ##在链中使用两个后端:首先是HTTP,然后是内部 #auth_backends.1 = rabbit_auth_backend_http #auth_backends.2 = rabbit_auth_backend_internal ##认证 ##内置的机制是“普通”, ##'AMQPLAIN'和'EXTERNAL'可以通过添加其他机制 ##插件。 ## ##相关文档指南:http://rabbitmq.com/authentication.html。 ## #auth_mechanisms.1 = PLAIN #auth_mechanisms.2 = AMQPLAIN ## rabbitmq-auth-mechanism-ssl插件使得它成为可能 ##根据客户端的x509(TLS)证书对用户进行身份验证。 ##相关文档指南:http://rabbitmq.com/authentication.html。 ## ##要使用auth-mechanism-ssl,EXTERNAL机制应该 ##被启用: ## #auth_mechanisms.1 = PLAIN #auth_mechanisms.2 = AMQPLAIN #auth_mechanisms.3 = EXTERNAL ##要强制所有客户端上基于x509证书的身份验证, ##排除所有其他机制(注意:这将禁用基于密码的 ##认证甚至管理用户界面!): ## #auth_mechanisms.1 = EXTERNAL ##这涉及rabbitmq-auth-mechanism-ssl插件和 ## STOMP ssl_cert_login配置。查看RabbitMQ STOMP插件 稍后在此文件和README中的 ##配置部分 ## https://github.com/rabbitmq/rabbitmq-auth-mechanism-ssl进一步 ## 细节。 ## ##使用TLS证书的CN而不是DN作为用户名 ## #ssl_cert_login_from = common_name ## TLS握手超时,以毫秒为单位。 ## #ssl_handshake_timeout = 5000 ##密码散列实现。只会影响新的 ##创建用户。重新计算现有用户的散列值 ##有必要更新她的密码。 ## ##要使用SHA-512,请设置为rabbit_password_hashing_sha512。 ## #password_hashing_module = rabbit_password_hashing_sha256 ##导入从早期版本导出的定义 ##比3.6.0,有可能回到MD5(只做这个 ##作为临时措施!)通过将其设置为rabbit_password_hashing_md5。 ## #password_hashing_module = rabbit_password_hashing_md5 ## ##默认用户/ VHost ## ==================== ## ##首先启动RabbitMQ将创建一个虚拟主机和一个用户。这些 ## config items控制创建的内容。 ##相关文档指南:http://rabbitmq.com/access-control.html ## #default_vhost = / #default_user = guest #default_pass = guest #default_permissions.configure =。* #default_permissions. read =。* #default_permissions.write =。* ##默认用户的标签 ## ##有关标签的更多详细信息,请参阅文档 ##管理插件在http://rabbitmq.com/management.html。 ## #default_user_tags.administrator = true ##定义这样的其他标签: #default_user_tags.management = true #default_user_tags.custom_tag = true ## ##其他网络和协议相关的配置 ## ================================================ ===== ## ##设置默认的AMQP 0-9-1心跳间隔(以秒为单位)。 ##相关文档指南: ## ## * http://rabbitmq.com/heartbeats.html ## * http://rabbitmq.com/networking.html ## #心跳= 600 ##设置AMQP帧的最大允许大小(以字节为单位)。 ## #frame_max = 131072 ##设置连接前服务器将接受的最大帧大小 ##调整发生 ## #initial_frame_max = 4096 ##设置每个连接的最大允许通道数量。 ## 0的意思是“没有限制”。 ## #channel_max = 128 ##自定义TCP监听器(套接字)配置。 ## ##相关文档指南: ## ## * http://rabbitmq.com/networking.html ## * http://www.erlang.org/doc/man/inet.html#setopts-2 ## #tcp_listen_options.backlog = 128 #tcp_listen_options.nodelay = true #tcp_listen_options.exit_on_close = false ## ##资源限制和流量控制 ## ============================== ## ##相关文档指南:http://rabbitmq.com/memory.html。 ##基于内存的流量控制阈值。 ## #vm_memory_high_watermark.relative = 0.4 ##或者,我们可以设置节点使用的RAM的限制(以字节为单位)。 ## #vm_memory_high_watermark.absolute = 1073741824 ##或者您可以使用内存单位设置绝对值(使用RabbitMQ 3.6.0+)。 如果相对定义,绝对水印将被忽略! ## #vm_memory_high_watermark.absolute = 2GB ## ##支持的单位后缀: ## ## kb,KB:kibibytes(2 ^ 10个字节) ## mb,MB:mebibytes(2 ^ 20) GB gb,GB:gibibytes(2 ^ 30) ##队列开始的高水印限制的分数 ##寻呼消息到光盘为了释放内存。 ##例如,当vm_memory_high_watermark被设置为0.4并且该值被设置为0.5时, ##分页可以在节点使用总可用RAM的20%时开始。 ## ##大于1.0的值可能是危险的,应谨慎使用。 ## ##一个替代方案是使用持久队列和发布消息 ##作为永久(交付模式= 2)。有了这个组合队列将 ##将消息更快地移动到磁盘。 ## ##另一种选择是配置队列来寻呼所有消息(都是 ##持久性和瞬态)到磁盘 ##尽可能参见http://rabbitmq.com/lazy-queues.html。 ## #vm_memory_high_watermark_paging_ratio = 0.5 ##选择Erlang VM内存消耗计算策略。可以是“分配”,“rss”或“legacy”(别名为“erlang”), ##在3.6.11中介绍。“rss”是3.6.12的默认值。 ##查看https://github.com/rabbitmq/rabbitmq-server/issues/1223和rabbitmq / rabbitmq-common#224获取背景信息。 #vm_memory_calculation_strategy = rss ##我们执行内存检查的间隔(以毫秒为单位) ##水平对水印。 ## #memory_monitor_interval = 2500 ##可用的总内存可以从OS资源中计算出来 ## - 默认选项 - 或作为配置参数提供。 #total_memory_available_override_value = 2GB ##设置磁盘空闲限制(以字节为单位)。一旦可用磁盘空间达到此目的 ##下限,磁盘报警将被设置 - 请参阅文档 ##上面列出了更多的细节。 ## 如果相对定义,绝对水印将被忽略! #disk_free_limit.absolute = 50000 ##或者你可以使用内存单元(与vm_memory_high_watermark相同) ##与RabbitMQ 3.6.0+。 #disk_free_limit.absolute = 500KB #disk_free_limit.absolute = 50mb #disk_free_limit.absolute = 5GB ##或者,我们可以设置一个相对于可用RAM总量的限制。 ## ##低于1.0的值可能是危险的,应谨慎使用。 #disk_free_limit.relative = 2.0 ## ##聚类 ## ===================== ## #cluster_partition_handling =忽略 ## pause_if_all_down策略需要额外的配置 #cluster_partition_handling = pause_if_all_down ##恢复策略。可以是“autoheal”或“忽略” #cluster_partition_handling.pause_if_all_down.recover =忽略 ##节点名称检查 #cluster_partition_handling.pause_if_all_down.nodes.1 = rabbit @ localhost #cluster_partition_handling.pause_if_all_down.nodes.2 = hare @ localhost ##在消息中镜像同步批量大小。增加这将加快速度 ##同步,但批量总大小(以字节为单位)不得超过2 GiB。 ##在RabbitMQ 3.6.0或更高版本中可用。 ## #mirroring_sync_batch_size = 4096 ##在启动时自动进行聚类。仅适用 ##到第一次刚复位或启动的节点。 ## ##相关文档指南:http://rabbitmq.com//cluster-formation.html ## #autocluster.peer_discovery_backend = rabbit_peer_discovery_classic_config # #autocluster.classic_config.nodes.node1 = rabbit1 @ hostname #autocluster.classic_config.nodes.node2 = rabbit2 @ hostname #autocluster.classic_config.nodes.node3 = rabbit3 @ hostname #autocluster.classic_config.nodes.node4 = rabbit4 @ hostname ##基于DNS的对等发现。这后端将列出A记录 配置的主机名 ##并执行反向查找 ##返回的地址。 #autocluster.peer_discovery_backend = rabbit_peer_discovery_dns #autocluster.dns. hostname = rabbitmq.discovery.mycompany. local ##此节点的类型可以配置。如果你不确定 ##使用什么节点类型,总是使用“光盘”。 #autocluster.node_type =光盘 ##发送Keepalive消息的间隔(以毫秒为单位) ##给其他集群成员。请注意,这不是一回事 ## as net_ticktime; 遗漏的keepalive消息不会导致节点 ##被认为是失望的。 ## #cluster_keepalive_interval = 10000 ## ##统计收集 ## ===================== ## ##设置(内部)统计信息收集粒度。 ## ##可以不是,粗或细 #collect_statistics =无 #collect_statistics =粗略 ##统计信息收集间隔(以毫秒为单位)。增加 ##这将减少管理数据库的负载。 ## #collect_statistics_interval = 5000 ## ##其他/高级选项 ## ===================== ## ##注意:只有在你明白自己在做什么的情况下才能改变这些! ## ##显式启用/禁用hipe编译。 ## #hipe_compile = false ##在等待群集中的Mnesia表时使用的超时 ##变得可用。 ## #mnesia_table_loading_retry_timeout = 30000 ##在群集启动中等待Mnesia表时重试。注意 ##此设置不适用于Mnesia升级或节点删除。 ## #mnesia_table_loading_retry_limit = 10 ##以字节为单位的大小,低于该大小将消息嵌入到队列索引中。 ##相关文档指南:http://rabbitmq.com/persistence-conf.html ## #queue_index_embed_msgs_below = 4096 ##你也可以用内存单位来设置这个大小 ## #queue_index_embed_msgs_below = 4kb ##是否启用所有的后台定期GC ## Erlang处于“等待”状态。 ## ##禁用后台GC可以减少客户端操作的延迟, ##保持启用可能会减少RAM的使用量。 ## #background_gc_enabled = false ##运行背景GC的目标(期望)间隔(以毫秒为单位)。 ##实际时间间隔取决于执行时间的长短 ##操作(可高于此间隔)。值小于 ##不建议使用30000毫秒。 ## #background_gc_target_interval = 60000 ##是否启用代理协议支持。 ##一旦启用,客户端不能直接连接到代理 ##了。他们必须通过一个负载均衡器连接发送 ##代理协议头在连接时间给代理。 ##此设置仅适用于AMQP客户端,其他协议 像MQTT或STOMP这样的 ##有自己的设置来启用代理协议。 ##请参阅插件文档以获取更多信息。 ## #proxy_protocol = false ## ------------------------------------------------ ---------------------------- ##高级的Erlang网络/集群选项。 ## ##相关文档指南:http://rabbitmq.com/clustering.html ## ------------------------------------------------ ---------------------------- #====================================== #内核部分 #====================================== #kernel.net_ticktime = 60 ## ------------------------------------------------ ---------------------------- ## RabbitMQ管理插件 ## ##相关文档指南:http://rabbitmq.com/management.html。 ## ------------------------------------------------ ---------------------------- #======================================= #管理部分 #======================================= ##从以下JSON文件中预载模式定义。 ##相关文档指南:http://rabbitmq.com/management.html#load-definitions。 ## #management.load_definitions = /path/to/exported/definitions .json ##将所有对管理HTTP API的请求记录到一个文件中。 ## #management.http_log_dir = /path/to/access .log ##更改HTTP侦听器侦听的端口, ##指定Web服务器绑定的接口。 ##还要将侦听器设置为使用TLS并提供TLS选项。 ## #management.listener.port = 15672 #management.listener.ip = 127.0.0.1 #management.listener.ssl = true #management.listener.ssl_opts.cacertfile = /path/to/cacert .pem #management.listener.ssl_opts.certfile = /path/to/cert .pem #management.listener.ssl_opts.keyfile = /path/to/key .pem ##“基本”,“详细”或“无”之一。看到 ## http://rabbitmq.com/management.html#fine-stats了解更多详情。 #management.rates_mode =基本 ##配置聚合数据的长度(如消息速率和队列 ##长度)被保留。请阅读插件的文档 ## http://rabbitmq.com/management.html#configuration更多 ## 细节。 ##您可以使用“分钟”,“小时”和“日”键或整数键(以秒为单位) #management.sample_retention_policies.global.minute = 5 #management.sample_retention_policies.global.hour = 60 #management.sample_retention_policies.global.day = 1200 #management.sample_retention_policies.basic.minute = 5 #management.sample_retention_policies.basic.hour = 60 #management.sample_retention_policies.detailed.10 = 5 ## ------------------------------------------------ ---------------------------- ## RabbitMQ铲子插件 ## ##相关文档指南:http://rabbitmq.com/shovel.html ## ------------------------------------------------ ---------------------------- ## Shovel插件配置示例在additional.config文件中定义 ## ------------------------------------------------ ---------------------------- ## RabbitMQ STOMP插件 ## ##相关文档指南:http://rabbitmq.com/stomp.html ## ------------------------------------------------ ---------------------------- #======================================= #STOMP部分 #======================================= ##网络配置。格式通常与核心代理相同。 ## #stomp.listeners.tcp.default = 61613 ##与ssl监听器相同 ## #stomp.listeners.ssl.default = 61614 ##将接受TCP连接的Erlang进程的数量 ##和TLS监听器。 ## #stomp.num_acceptors.tcp = 10 #stomp.num_acceptors.ssl = 1 ##其他TLS选项 ##使用TLS时,从客户端证书中提取名称。 ## #stomp.ssl_cert_login = true ##设置默认的用户名和密码。这被用作默认登录 ##每当CONNECT框架省略登录名和密码头。 ## ##请注意,设置这将允许客户端连接没有 ##验证! ## #stomp.default_user = guest #stomp.default_pass = guest ##如果配置了默认用户,或者您已配置使用TLS客户端 ##证书为基础的身份验证,您可以选择允许客户端 ##完全忽略CONNECT帧。如果设置为true,则客户端是 ##自动连接为默认用户或用户提供的 每当在一个会话上发送的第一帧不是一个 ## TLS证书 ##连接框架。 ## #stomp.implicit_connect = true ##是否启用代理协议支持。 ##一旦启用,客户端不能直接连接到代理 ##了。他们必须通过一个负载均衡器连接发送 ##代理协议头在连接时间给代理。 ##此设置仅适用于STOMP客户端,其他协议 像MQTT或AMQP这样的 ##有自己的设置来启用代理协议。 ##请参阅插件或代理文档以获取更多信息。 ## #stomp.proxy_protocol = false ## ------------------------------------------------ ---------------------------- ## RabbitMQ MQTT适配器 ## ##见https://github.com/rabbitmq/rabbitmq-mqtt/blob/stable/README.md ##的细节 ## ------------------------------------------------ ---------------------------- #======================================= #MQTT部分 #======================================= ##设置默认的用户名和密码。将被用作默认登录 ##如果连接客户端没有提供其他登录信息。 ## ##请注意,设置这将允许客户端连接没有 ##验证! ## #mqtt.default_user = guest #mqtt.default_pass = guest ##启用匿名访问。如果这被设置为false,客户端必须提供 ##登录信息才能连接。请参阅default_user / default_pass ##配置元素管理登录没有身份验证。 ## #mqtt.allow_anonymous = true ##如果你有多个chosts,指定哪个 ##适配器连接。 ## #mqtt.vhost = / ##指定发布来自MQTT客户端的消息的交换。 ## #mqtt.exchange = amq.topic ##指定TTL(生存时间)来控制非干净会话的生命周期。 ## #mqtt.subscription_ttl = 1800000 ##设置预取计数(控制未确认的最大数量 ##消息将被交付)。 ## #mqtt.prefetch = 10 ## TCP / SSL配置(按照代理配置)。 ## #mqtt.listeners.tcp.default = 1883 ##与ssl监听器相同 ## #mqtt.listeners.ssl.default = 1884 ##将接受TCP连接的Erlang进程的数量 ##和TLS监听器。 ## #mqtt.num_acceptors.tcp = 10 #mqtt.num_acceptors.ssl = 1 ## TCP侦听器选项(按照代理配置)。 ## #mqtt.tcp_listen_options.backlog = 128 #mqtt.tcp_listen_options.nodelay = true ##是否启用代理协议支持。 ##一旦启用,客户端不能直接连接到代理 ##了。他们必须通过一个负载均衡器连接发送 ##代理协议头在连接时间给代理。 ##此设置仅适用于STOMP客户端,其他协议 ##像STOMP或AMQP有自己的设置来启用代理协议。 ##请参阅插件或代理文档以获取更多信息。 ## #mqtt.proxy_protocol = false ## ------------------------------------------------ ---------------------------- ## RabbitMQ AMQP 1.0支持 ## ##见https://github.com/rabbitmq/rabbitmq-amqp1.0/blob/stable/README.md。 ## ------------------------------------------------ ---------------------------- #======================================= #AMQP 1.0部分 #======================================= ##未通过SASL认证的连接将以此连接 ##帐户。请参阅自述文件以获取更多信息。 ## ##请注意,设置这将允许客户端连接没有 ##验证! ## #amqp1_0.default_user = guest ##启用协议严格模式。请参阅自述文件以获取更多信息。 ## #amqp1_0.protocol_strict_mode = false ## Lager控制记录。 ##请参阅https://github.com/basho/lager获取更多文档 ## ## Log direcrory,默认情况下取自RABBITMQ_LOG_BASE env变量。 ## #log. dir = / var / log / rabbitmq ##记录到控制台(可以为true或false) ## #log.console = false ## Loglevel登录到控制台 ## #log.console.level = info ##记录到文件。可以是假的或文件名。 ##默认: #log. file = rabbit.log ## 把关掉: #log. file = false ## Loglevel记录到文件 ## #log. file .level = info ##文件旋转配置。没有旋转的defualt。 ##不要将旋转日期设置为“”。如果需要“”值,请保持不变 #log. file .rotation. date = $ D0 #log. file .rotation.size = 0 ## QA:配置系统日志记录 #log.syslog = false #log.syslog.identity = rabbitmq #log.syslog.level = info #log.syslog.facility =守护进程 ## ------------------------------------------------ ---------------------------- ## RabbitMQ LDAP插件 ## ##相关文档指南:http://rabbitmq.com/ldap.html。 ## ## ------------------------------------------------ ---------------------------- #======================================= #LDAP部分 #======================================= ## ##连接到LDAP服务器 ## ================================ ## ##指定要绑定的服务器。你*必须*设置为了插件 ##正常工作。 ## #auth_ldap.servers.1 =你的服务器名称在这里 ##您可以定义多个服务器 #auth_ldap.servers.2 =你的其他服务器 ##使用TLS连接到LDAP服务器 ## #auth_ldap.use_ssl = false ##指定要连接的LDAP端口 ## #auth_ldap.port = 389 ## LDAP连接超时,以毫秒或“无限” ## #auth_ldap.timeout =无限 ##或号码 #auth_ldap.timeout = 500 ##启用LDAP查询的记录。 ##其中之一 ## - false(不记录) ## - true(详细记录插件使用的逻辑) ## - 网络(如同,但另外记录LDAP网络流量) ## ##默认为false。 ## #auth_ldap.log = false ##也可以是真实的或网络 #auth_ldap.log = true #auth_ldap.log =网络 ## ##认证 ## ============== ## ##模式将通过AMQP给出的用户名转换为DN ## 捆绑 ## #auth_ldap.user_dn_pattern = cn = $ {username},ou = People, dc = example, dc = com ##或者,您可以将用户名转换为Distinguished ##绑定后通过LDAP查找命名。请参阅文档 ##全部细节。 ##通过查找将用户名转换为dn时,将其设置为 ##表示用户名的属性的名称,而 查找查询的 ## base DN。 ## #auth_ldap.dn_lookup_attribute = userPrincipalName #auth_ldap.dn_lookup_base = DC = gopivotal,DC = com ##控制如何绑定授权查询,也可以 ##检索登录用户的详细信息,而不显示一个 ##密码(例如,SASL EXTERNAL)。 ##其中之一 ## - as_user(作为认证用户进行绑定 - 需要密码) ## - 匿名(匿名绑定) ## - {UserDN,Password}(用指定的用户名和密码绑定) ## ##默认为'as_user'。 ## #auth_ldap.other_bind = as_user ##或者可以更复杂: #auth_ldap.other_bind.user_dn =用户 #auth_ldap.other_bind.password =密码 ##如果user_dn和密码定义 - 其他选项被忽略。 #----------------------------- #太复杂的LDAP部分 #----------------------------- ## ##授权 ## ============= ## ## LDAP插件可以针对您的应用程序执行各种查询 ## LDAP服务器来确定授权的问题。 ## ##相关文档指南:http://rabbitmq.com/ldap.html#authorisation。 ##以下配置应该在additional.config文件中定义 ##不要处理这条线! ##将查询设置为在确定访问虚拟主机时使用 ## ## {vhost_access_query,{in_group, ##“ou = $ {vhost} -users,ou = vhosts,dc = example,dc = com”}} ##设置查询以在确定资源(例如,队列)访问时使用 ## ## {resource_access_query,{constant,true}}, ##设置查询来确定用户拥有哪些标签 ## ## {tag_queries,[]} #]}, #----------------------------- |