[ %% ---------------------------------------------------------------------------- %% RabbitMQ Sample Configuration File. %% %% See http://www.rabbitmq.com/configure.html for details. %% ---------------------------------------------------------------------------- {rabbit, [%% %% Network Connectivity %% %% By default, RabbitMQ will listen on all interfaces, using %% the standard (reserved) AMQP port. %% %% {tcp_listeners, [5672]}, %% To listen on a specific interface, provide a tuple of {IpAddress, Port}. %% For example, to listen only on localhost for both IPv4 and IPv6: %% %% {tcp_listeners, [{"127.0.0.1", 5673}, %% {"::1", 5673}]}, %% SSL listeners are configured in the same fashion as TCP listeners, %% including the option to control the choice of interface. %% %% {ssl_listeners, [{"0.0.0.0", 5672}]}, %% Log levels (currently just used for connection logging). %% One of 'info', 'warning', 'error' or 'none', in decreasing order %% of verbosity. Defaults to 'info'. %% %% {log_levels, [{connection, info}]}, %% %% Security/AAA & Default VHost/User %% %% Configuring SSL. %% See http://www.rabbitmq.com/ssl.html for full documentation. %% %% {ssl_options, [{cacertfile,"/path/to/testca/cacert.pem"}, %% {certfile,"/path/to/server/cert.pem"}, %% {keyfile,"/path/to/server/key.pem"}, %% {verify, verify_peer}, %% {fail_if_no_peer_cert, true}]}, %% Choose the available SASL mechanism(s) to expose. %% The two default (built in) mechanisms are 'PLAIN' and %% 'AMQPLAIN'. Additional mechanisms can be added via %% plugins. %% %% See http://www.rabbitmq.com/authentication.html for more details. %% {auth_mechanisms, ['PLAIN', 'AMQPLAIN']}, %% Select an authentication database to use. RabbitMQ comes bundled %% with a built-in auth-database, based on mnesia. %% {auth_backends, [rabbit_auth_backend_internal]}, %% %% Configurations supporting the rabbitmq-auth-mechanism-ssl and %% rabbitmq-ldap plugins. %% %% NB: These options require that the relevant plugin is enabled. %% See http://www.rabbitmq.com/plugins.html for further details. %% %% The RabbitMQ-auth-mechanism-ssl plugin makes it possible to %% authenticate a user based on the client's SSL certificate. %% %% To use auth-mechanism-ssl, add to or replace the auth_mechanisms %% list with the entry 'EXTERNAL'. %% %% {auth_mechanisms, ['EXTERNAL']}, %% The rabbitmq-auth-backend_ldap allows the broker to perform %% authentication and authorisation by deferring to an external LDAP server. %% %% For more information about configuring the LDAP backend, see %% http://www.rabbitmq.com/ldap.html. %% %% Enable the LDAP auth backend by adding to or replacing the %% auth_backends entry: %% %% {auth_backends, [rabbit_auth_backend_ldap]}, %% Name of the virtual host to create on first start. See %% http://www.rabbitmq.com/access-control.html for further information %% about vhosts and access control. %% %% {default_vhost, <<"/">>}, %% User name to create on first start. %% {default_user, <<"guest">>}, %% Password for the default user. %% {default_pass, <<"guest">>}, %% Tags for default user. %% %% For more details about tags, see the documentation for the %% Management Plugin at http://www.rabbitmq.com/management.html. %% %% {default_user_tags, [administrator]}, %% Set up access control (permissions) for the default user. %% %% The permissions list consists of rules for configure, write and read %% permissions. See http://www.rabbitmq.com/access-control.html for %% further details. %% %% {default_permissions, [<<".*">>, <<".*">>, <<".*">>]}, %% %% Misc/Advanced Options: %% %% NB: Change these only if you understand what you are doing! %% %% Set the default AMQP heartbeat delay (in seconds). %% {heartbeat, 600}, %% Set the max permissible size of an AMQP frame (in bytes). %% {frame_max, 131072}, %% Socket configuration. %% %% See (http://www.erlang.org/doc/man/inet.html#setopts-2) for %% further documentation. %% %% {tcp_listen_options, [binary, %% {packet, raw}, %% {reuseaddr, true}, %% {backlog, 128}, %% {nodelay, true}, %% {exit_on_close, false}]}, %% %% Resource Limits & Flow Control. %% %% See http://www.rabbitmq.com/memory.html for more details. %% %% Memory-based Flow Control threshold. %% {vm_memory_high_watermark, 0.4}, %% Fraction of the high watermark limit at which queues start to %% page message out to disc in order to free up memory. %% {vm_memory_high_watermark_paging_ratio, 0.5}, %% Set disk free limit (in bytes). Once free disk space reaches this %% lower bound, a disk alarm will be set - see the documentation %% listed above for more details. %% %% {disk_free_limit, 1000000000}, %% Alternatively, we can set a limit relative to total available RAM. %% %% {disk_free_limit, {mem_relative, 1.0}}, %% Override the file handle limit. %% %% {file_handles_high_watermark, 10000000}, %% How to respond to cluster partitions. %% See http://www.rabbitmq.com/partitions.html for further details. %% %% {cluster_partition_handling, ignore}, %% Make clustering happen *automatically* at startup - only applied %% to nodes that have just been reset or started for the first time. %% See http://www.rabbitmq.com/clustering.html#auto-config for %% further details. %% %% {cluster_nodes, {['rabbit@my.host.com'], disc}}, %% Set (internal) statistics collection granularity. %% {collect_statistics, none}, %% Statistics collection interval (in milliseconds). %% {collect_statistics_interval, 5000}, %% Explicitly enable/disable hipe compilation. %% {hipe_compile, true}, ]}, %% ---------------------------------------------------------------------------- %% Advanced Erlang Networking/Clustering Options. %% %% See http://www.rabbitmq.com/clustering.html for details %% ---------------------------------------------------------------------------- {kernel, [%% Provide an explicit port-range for inter-node communications. %% See http://www.rabbitmq.com/clustering.html#firewall for further details. %% {inet_dist_listen_min, 10000}, {inet_dist_listen_max, 10005} ]} %% ---------------------------------------------------------------------------- %% RabbitMQ Management Plugin %% %% See http://www.rabbitmq.com/management.html for details %% ---------------------------------------------------------------------------- {rabbitmq_management, [%% Pre-Load schema definitions from the following JSON file. %% {load_definitions, "/path/to/schema.json"}, %% Log all requests to the management HTTP API to a file. %% {http_log_dir, "/path/to/access.log"}, %% Change the port on which the HTTP listener listens, %% specifying an interface for the web server to bind to. %% Also set the listener to use SSL and provide SSL options. %% %% {listener, [{port, 12345}, %% {ip, "127.0.0.1"}, %% {ssl, true}, %% {ssl_opts, [{cacertfile, "/path/to/cacert.pem"}, %% {certfile, "/path/to/cert.pem"}, %% {keyfile, "/path/to/key.pem"}]}]}, ]}, {rabbitmq_management_agent, [%% %% Misc/Advanced Options: %% %% NB: Change these only if you understand what you are doing! %% %% {force_fine_statistics, true} ]}, %% ---------------------------------------------------------------------------- %% RabbitMQ Shovel Plugin %% %% See http://www.rabbitmq.com/shovel.html for details %% ---------------------------------------------------------------------------- {rabbitmq_shovel, [{shovels, [%% A named shovel worker. %% {my_first_shovel, %% [ %% List the source broker(s) from which to consume. %% {sources, %% [%% URI(s) and pre-declarations for all source broker(s). %% {brokers, ["amqp://user:password@host.domain/my_vhost"]}, %% {declarations, []} %% ]}, %% List the destination broker(s) to publish to. %% {destinations, %% [%% A singular version of the 'brokers' element. %% {broker, "amqp://"}, %% {declarations, []} %% ]}, %% Name of the queue to shovel messages from. %% {queue, <<"your-queue-name-goes-here">>}, %% Optional prefetch count. %% {prefetch_count, 10}, %% when to acknowledge messages: %% - no_ack: never (auto) %% - on_publish: after each message is republished %% - on_confirm: when the destination broker confirms receipt %% {ack_mode, on_confirm}, %% Static list of basic.properties to set on re-publication. %% {publish_properties, [{delivery_mode, 2}]}, %% Overwrite fields of the outbound basic.publish. %% {publish_fields, []}, %% The number of seconds to wait before attempting to %% reconnect in the event of a connection failure. %% {reconnect_delay, 2.5} ]} ]}, %% ---------------------------------------------------------------------------- %% RabbitMQ Stomp Adapter %% %% See http://www.rabbitmq.com/stomp.html for details %% ---------------------------------------------------------------------------- {rabbitmq_stomp, [%% Listen only on localhost (ipv4 & ipv6) on a specific port. %% {tcp_listeners, [{"127.0.0.1", 61612}, %% {"::1", 61612}]}, %% Listen for SSL connections on a specific port. %% {ssl_listeners, [61613]}, %% Extract name from client certificate when using SSL. %% {ssl_cert_login, true}, %% Use cn instead of dn when reading from the SSL cert. %% {ssl_cert_login_from, common_name}, %% Set a default user name and password. This is used as the default login %% whenever a CONNECT frame omits the login and passcode headers. %% %% {default_user, [{login, "guest"}, %% {passcode, "guest"}]} ]}, %% ---------------------------------------------------------------------------- %% RabbitMQ MQTT Adapter %% %% See http://hg.rabbitmq.com/rabbitmq-mqtt/file/stable/README.md for details %% ---------------------------------------------------------------------------- {rabbitmq_mqtt, [%% Set the default user name and password. Will be used as the default login %% if a connecting client provides no other login details. %% %% {default_user, <<"guest">>}, %% {default_pass, <<"guest">>}, %% Enable anonymous access. %% {allow_anonymous, true}, %% Specify the vhost to which the adapter connects. %% {vhost, <<"/">>}, %% Specify the exchange to which messages from MQTT clients are published. %% {exchange, <<"amq.topic">>}, %% Specify TTL (time to live) to control the lifetime of non-clean sessions. %% {subscription_ttl, 1800000}, %% Set the prefetch count (governing the maximum number of unacknowledged %% messages that will be delivered). %% {prefetch, 10}, %% TCP/SSL Configuration (as per the broker configuration) %% {ssl_listeners, []}, %% {tcp_listeners, [1883]}, %% TCP/Socket options (as per the broker configuration). %% {tcp_listen_options, [binary, %% {packet, raw}, %% {reuseaddr, true}, %% {backlog, 128}, %% {nodelay, true}]} ]}, %% ---------------------------------------------------------------------------- %% RabbitMQ AMQP 1.0 Support %% %% See http://hg.rabbitmq.com/rabbitmq-amqp1.0/file/default/README.md %% for details %% ---------------------------------------------------------------------------- {rabbitmq_amqp1_0, [%% Connections that are not authenticated with SASL, will connect as this %% account. See the README for more information. %% {default_user, "guest"}, %% Enable protocol strict mode. See the README for more information. %% {protocol_strict_mode, false} ]}, %% ---------------------------------------------------------------------------- %% RabbitMQ LDAP Plugin %% %% See http://www.rabbitmq.com/ldap.html for details. %% %% ---------------------------------------------------------------------------- {rabbitmq_auth_backend_ldap, [%% Specify server's to bind to. You *must* set this in order for the plugin %% to work properly. {servers, ["your-server-name-goes-here"]} %% Set user DN pattern. %% {user_dn_pattern, "cn=${username},ou=People,dc=example,dc=com"}, %% Enable SSL. %% {use_ssl, false}, %% Specify the LDAP port. %% {port, 389}, %% Enable logging of LDAP queries. %% {log, false}, %% Set the query to use when determining vhost access. %% {vhost_access_query, {in_group %% "ou=${vhost}-users,ou=vhosts,dc=example,dc=com"}}, %% Set the query to use when determining resource (e.g., queue) access. %% {resource_access_query, {constant, true}}, %% Set queries to determine which tags a user has. %% See https://www.rabbitmq.com/management.html#permissions for a detailed %% explanation of tags/permissions. %% {tag_queries, []} ]} ].