2013-06-11 10 views
12

Próbuję pobrać pracownika Django Celery do połączenia z serwerem RabbitMQ, wszystkie działające na tym samym hoście.Zezwalanie na połączenia z serwerem RabbitMQ

Jednak, gdy biegnę manage.py celery worker wszystko pojawia się:

[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... 

Kiedy sprawdzać mój /var/log/rabbitmq/[email protected] widzę kilka wiadomości jak:

=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'}} 

Używam standardowy pakiet z Ubuntu Repo 12.04, z domyślnymi ustawieniami i moimi ustawieniami django-selera wygląda następująco:

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

Dlaczego RabbitMQ odmawia połączeń?

Odpowiedz

32

Wygląda na to, że musisz przyznać dostęp do "/ myapp" vhost dla użytkownika "guest".

From the docs:

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

Więc coś podobnego do tego będzie dać Gość nieograniczony dostęp:

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