2013-06-11 8 views
12

Sto provando ad ottenere un operatore Django Celery per connettersi a un server RabbitMQ, tutto in esecuzione sullo stesso host.Permettere connessioni RabbitMQ-Server

Tuttavia, quando corro manage.py celery worker tutto quello che ottiene è:

[2013-06-11 17:33:41,185: WARNING/MainProcess] [email protected] has started. 
[2013-06-11 17:33:44,192: ERROR/MainProcess] Consumer: Connection Error: Socket closed. Trying again in 2 seconds... 
[2013-06-11 17:33:50,203: ERROR/MainProcess] Consumer: Connection Error: Socket closed. Trying again in 4 seconds... 
[2013-06-11 17:34:03,214: ERROR/MainProcess] Consumer: Connection Error: Socket closed. Trying again in 6 seconds... 
[2013-06-11 17:34:27,232: ERROR/MainProcess] Consumer: Connection Error: Socket closed. Trying again in 8 seconds... 

Quando ho ispezionare la mia /var/log/rabbitmq/[email protected] vedo diversi messaggi come:

=ERROR REPORT==== 11-Jun-2013::17:33:44 === 
exception on TCP connection <0.201.0> from 127.0.0.1:43461 
{channel0_error,opening, 
       {amqp_error,access_refused, 
          "access to vhost 'myapp' refused for user 'guest'", 
          'connection.open'}} 

sto usando il pacchetto standard di Ubuntu Il repository 12.04, con le impostazioni predefinite e le mie impostazioni di django-sedano, assomiglia a:

BROKER_HOST = "localhost" 
BROKER_PORT = 5672 
BROKER_USER = "guest" 
BROKER_PASSWORD = "guest" 
BROKER_VHOST = "myapp" 

Perché RabbitMQ rifiuta le connessioni?

risposta

32

Sembra che sia necessario concedere l'accesso al vhost "/ myapp" per l'utente "guest".

From the docs:

set_permissions [-p vhostpath] {user} {conf} {write} {read} 

Quindi, qualcosa di simile a questo darà l'utente guest accesso illimitato:

rabbitmqctl set_permissions -p /myvhost guest ".*" ".*" ".*"