2013-06-11 32 views
12

Tôi đang cố gắng để có được một nhân viên của Django Celery để kết nối với một máy chủ RabbitMQ, tất cả đều chạy trên cùng một máy chủ.Cho phép kết nối RabbitMQ-Server

Tuy nhiên, khi tôi chạy manage.py celery worker tất cả tôi nhận được là:

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

Khi tôi kiểm tra của tôi /var/log/rabbitmq/[email protected] Tôi thấy một vài tin nhắn như:

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

Tôi đang sử dụng gói tiêu chuẩn ra khỏi Ubuntu Repo 12.04, với cài đặt mặc định và cài đặt django-cần tây của tôi trông giống như:

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

Tại sao ThỏMQ từ chối kết nối?

Trả lời

32

Có vẻ như bạn cần cấp quyền truy cập vào vhost "/ myapp" cho người dùng "khách".

From the docs:

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

Vì vậy, một cái gì đó tương tự như điều này sẽ cung cấp cho người sử dụng khách của bạn truy cập không giới hạn:

rabbitmqctl set_permissions -p /myvhost guest ".*" ".*" ".*" 
Các vấn đề liên quan