summaryrefslogtreecommitdiff
path: root/docs/rabbitmq.config.example
diff options
context:
space:
mode:
authorTim Watson <tim@rabbitmq.com>2013-09-24 16:06:03 +0100
committerTim Watson <tim@rabbitmq.com>2013-09-24 16:06:03 +0100
commit878494d437d87aa5e06764f4f6be480a77e7f3f9 (patch)
tree47ccc2b961948d3c5c7e183eadeaaf1177a8a862 /docs/rabbitmq.config.example
parent520b49ab4e57b613be96d2e296218fdbe7f6efb9 (diff)
downloadrabbitmq-server-git-878494d437d87aa5e06764f4f6be480a77e7f3f9.tar.gz
continued adventures in configuration file improvements; take out DOC_INSTALL_DIR for now
Diffstat (limited to 'docs/rabbitmq.config.example')
-rw-r--r--docs/rabbitmq.config.example390
1 files changed, 390 insertions, 0 deletions
diff --git a/docs/rabbitmq.config.example b/docs/rabbitmq.config.example
new file mode 100644
index 0000000000..467149a4c4
--- /dev/null
+++ b/docs/rabbitmq.config.example
@@ -0,0 +1,390 @@
+[
+ %% ----------------------------------------------------------------------------
+ %% 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 rabbimq-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.
+ %% See http://www.rabbitmq.com/clustering.html 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},
+
+ ]},
+
+ %% ----------------------------------------------------------------------------
+ %% RabbiMQ 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}
+ ]},
+
+ %% ----------------------------------------------------------------------------
+ %% RabbiMQ 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}
+ ]}
+ ]},
+
+ %% ----------------------------------------------------------------------------
+ %% RabbiMQ 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.
+ %% {default_user, [{login, "guest"},
+ %% {passcode, "guest"}]}
+ ]},
+
+ %% ----------------------------------------------------------------------------
+ %% RabbiMQ MQTT Adapter
+ %%
+ %% See http://hg.rabbitmq.com/rabbitmq-mqtt/file/stable/README.md for details
+ %% ----------------------------------------------------------------------------
+
+ {rabbitmq_mqtt,
+ [%% Set the default user name and password.
+ %% {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}]}
+ ]},
+
+ %% ----------------------------------------------------------------------------
+ %% RabbiMQ AMQP 1.0 Support
+ %%
+ %% See http://hg.rabbitmq.com/rabbitmq-amqp1.0/file/default/README.md
+ %% for details
+ %% ----------------------------------------------------------------------------
+
+ {rabbitmq_amqp1_0,
+ [%% Set the default user.
+ %% {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, []}
+ ]}
+].
+