Go to file
Michele Baldessari cc2d46a30d Only export RABBITMQ_NODE_PORT when it is not the default
RABBITMQ_NODE_PORT is exported by default and set to 5672. Re-exporting it in that
case will actually break the case where we set up rabbit with tls on the default port:

  2021-02-28 07:44:10.732 [error] <0.453.0> Failed to start Ranch listener
  {acceptor,{172,17,1,93},5672} in ranch_ssl:listen([{cacerts,'...'},{key,'...'},{cert,'...'},{ip,{172,17,1,93}},{port,5672},
  inet,{keepalive,true}, {versions,['tlsv1.1','tlsv1.2']},{certfile,"/etc/pki/tls/certs/rabbitmq.crt"},{keyfile,"/etc/pki/tls/private/rabbitmq.key"},
  {depth,1},{secure_renegotiate,true},{reuse_sessions,true},{honor_cipher_order,true},{verify,verify_none},{fail_if_no_peer_cert,false}])
  for reason eaddrinuse (address already in use)

This is because by explicitely always exporting it, we force rabbit to listen to
that port via tcp and that is a problem when we want to do SSL on that port.
Since 5672 is the default port already we can just avoid exporting this port when
the user does not customize the port.

Tested both in a non-TLS env (A) and in a TLS-env (B) successfully:
(A) Non-TLS
[root@messaging-0 /]# grep -ir -e tls -e ssl /etc/rabbitmq
[root@messaging-0 /]#
[root@messaging-0 /]# pcs status |grep rabbitmq
    * rabbitmq-bundle-0 (ocf::rabbitmq:rabbitmq-server-ha):      Master messaging-0
    * rabbitmq-bundle-1 (ocf::rabbitmq:rabbitmq-server-ha):      Master messaging-1
    * rabbitmq-bundle-2 (ocf::rabbitmq:rabbitmq-server-ha):      Master messaging-2

(B) TLS
[root@messaging-0 /]# grep -ir -e tls -e ssl /etc/rabbitmq/ |head -n3
/etc/rabbitmq/rabbitmq.config:  {ssl, [{versions, ['tlsv1.1', 'tlsv1.2']}]},
/etc/rabbitmq/rabbitmq.config:    {ssl_listeners, [{"172.17.1.48", 5672}]},
/etc/rabbitmq/rabbitmq.config:    {ssl_options, [

[root@messaging-0 ~]# pcs status |grep rabbitmq
    * rabbitmq-bundle-0 (ocf::rabbitmq:rabbitmq-server-ha):      Master messaging-0
    * rabbitmq-bundle-1 (ocf::rabbitmq:rabbitmq-server-ha):      Master messaging-1
    * rabbitmq-bundle-2 (ocf::rabbitmq:rabbitmq-server-ha):      Master messaging-2

Note: I don't believe we should export RABBITMQ_NODE_PORT at all, since you can specify all ports
in the rabbit configuration anyways, but prefer to play it safe here as folks might rely on being
able to customize this.

Signed-off-by: Michele Baldessari <michele@acksyn.org>
2021-02-28 15:51:39 +01:00
.github Add stream prometheus plugin to GH actions 2021-01-27 16:55:46 +01:00
ci Remove 'package-generic-unix' job from the GitHub Actions workflow 2021-01-15 09:20:54 +01:00
deps Update heartbeat timeout docs in rabbitmq.conf.example 2021-02-26 20:11:31 +03:00
doc Add files to specify license info 2020-08-18 12:42:43 -07:00
mk Add `make monorepo-distclean` [ci skip] 2020-11-24 12:14:55 +01:00
packaging Move most packaging goal implementations to rabbitmq-packaging 2021-02-26 11:39:01 +01:00
scripts Only export RABBITMQ_NODE_PORT when it is not the default 2021-02-28 15:51:39 +01:00
workflow_sources Add stream prometheus plugin to GH actions 2021-01-27 16:55:46 +01:00
.gitignore Ignore commonly used profiling file names 2021-02-16 17:14:11 +03:00
.travis.yml Travis CI: Restore correct configuration 2020-03-31 12:16:20 +02:00
.travis.yml.patch Travis CI: Restore correct configuration 2020-03-31 12:16:20 +02:00
CODE_OF_CONDUCT.md URL Cleanup 2019-03-20 03:22:38 -05:00
CONTRIBUTING.md Add instructions for running specific test suites, and only running certain tests in GH actions 2020-11-20 07:41:58 -08:00
LICENSE Switch to MPL 2.0 2020-07-17 16:10:14 +03:00
LICENSE-APACHE2 Switch to MPL 2.0 2020-07-17 16:10:14 +03:00
LICENSE-MPL-RabbitMQ Revert drop of Exhibit B on MPL 2.0 2020-07-20 17:03:37 +01:00
Makefile Move most packaging goal implementations to rabbitmq-packaging 2021-02-26 11:39:01 +01:00
PKG_LINUX.md URL Cleanup 2019-03-20 03:22:38 -05:00
PKG_WINDOWS.md Windows doc tweaks 2018-11-08 13:48:46 -08:00
README.md More README edits 2021-01-22 05:30:30 +03:00
SERVER_RELEASES.md Move (copy) the README file back into place 2020-11-13 15:01:21 +01:00
erlang.mk Update erlang.mk 2020-07-21 14:33:34 +01:00
plugins.mk Add stream prometheus plugin to plugins.mk 2021-01-28 17:18:03 +01:00
rabbitmq-components.mk Bump observer_cli to 1.6.0 2021-02-24 12:53:55 +03:00

README.md

OTP v22.3 OTP v23

RabbitMQ Server

RabbitMQ is a feature rich, multi-protocol messaging broker. It supports:

  • AMQP 0-9-1
  • AMQP 1.0
  • MQTT 3.1.1
  • STOMP 1.0 through 1.2

Installation

Tutorials & Documentation

Some key doc guides include

Commercial Support

Getting Help from the Community

Contributing

See CONTRIBUTING.md and our development process overview.

Questions about contributing, internals and so on are very welcome on the mailing list.

Licensing

RabbitMQ server is licensed under the MPL 2.0.

Building From Source and Packaging

(c) 2007-2020 VMware, Inc. or its affiliates.