2013-06-11 68 views
12

我想讓一個Django芹菜工作者連接到RabbitMQ服務器,所有運行在同一主機上。允許RabbitMQ服務器連接

然而,當我運行manage.py celery worker我得到的是:

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

當我檢查我的/var/log/rabbitmq/[email protected]我看到這樣幾個信息:

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

我使用的是標準包裝出來的Ubuntu 12.04的回購,默認設置和我的Django芹菜設置看起來像:

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

爲什麼RabbitMQ拒絕連接?

回答

32

它看起來像你需要授予「guest」用戶的「/ myapp」虛擬主機訪問權限。

From the docs

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

如此的相似,這會給您的guest用戶無限制地訪問了一句:

rabbitmqctl set_permissions -p /myvhost guest ".*" ".*" ".*" 
相關問題