Colocar o seguinte em /etc/rabbitmq/rabbitmq-env.conf
fará com que RabbitMQ e epmd ouçam apenas localhost:
export RABBITMQ_NODENAME=rabbit@localhost
export RABBITMQ_NODE_IP_ADDRESS=127.0.0.1
export ERL_EPMD_ADDRESS=127.0.0.1
É preciso um pouco mais de trabalho para configurar o Erlang para usar somente o host local para a porta numerada mais alta (que é usada para os nós de armazenamento em cluster, tanto quanto eu posso dizer). Se você não se preocupa com clustering e apenas quer que o Rabbit seja executado localmente, então você pode passar uma opção de kernel para o Erlang para usar somente a interface de loopback.
Para fazer isso, crie um novo arquivo em /etc/rabbitmq/
- eu chamarei rabbit.config
. Neste arquivo, vamos colocar a opção Erlang que precisamos carregar no tempo de execução.
[{kernel,[{inet_dist_use_interface,{127,0,0,1}}]}].
Se você estiver usando o plug-in de gerenciamento e também quiser limitar isso ao localhost, precisará configurar suas portas separadamente, fazendo com que o rabbit.config inclua isso:
[
{rabbitmq_management, [
{listener, [{port, 15672}, {ip, "127.0.0.1"}]}
]},
{kernel, [
{inet_dist_use_interface,{127,0,0,1}}
]}
].
(Note que o RabbitMQ deixa o epmd rodando quando ele é desligado, então se você quiser bloquear a porta de cluster do Erlang, você precisará reiniciar o epmd separadamente do Rabbit.)
Em seguida, precisamos que o RabbitMQ carregue isso na inicialização. Abra /etc/rabbitmq/rabbitmq.conf
novamente e coloque o seguinte no topo:
export RABBITMQ_CONFIG_FILE="/etc/rabbitmq/rabbit"
Isso carrega esse arquivo de configuração quando o servidor do coelho é iniciado e passa as opções para o Erlang.
Agora você deve ter todos os processos Erlang / RabbitMQ ouvindo apenas no localhost! Isso pode ser verificado com netstat -ntlap
EDIT: Nas versões mais antigas do RabbitMQ, o arquivo de configuração é: /etc/rabbitmq/rabbitmq.conf
. No entanto, esse arquivo foi substituído pelo arquivo rabbit-env.conf
.