Jag hittade anslutningsvilan genom peer-fel och antog att RabbitMQ inte lyssnade på porten eller att det fanns en brandvägg som blockerade den. Så var inte fallet.
Kör RabbitMQ på Ubuntu 16.04.2 LTS, version installerad av apt:3.5.7-1ubuntu0.16.04.1
Utdata från 'netstat -a' för Rabbits port 5672 såg ut så här:
$ netstat -a|grep -i amqp
tcp6 0 0 [::]:amqp [::]:* LISTEN
Men Rabbit lyssnade faktiskt på både IPv4-adressen och IPv6-adressen. Jag verifierade detta med netcat.
För att nå Rabbit från en annan maskin måste du konfigurera ett användarkonto med något i stil med följande kommandon:
sudo rabbitmqctl add_user celery celerypassword
sudo rabbitmqctl add_vhost celery_vhost
sudo rabbitmqctl set_user_tags celery celerytag
sudo rabbitmqctl set_permissions -p celery_vhost celery .* .* .*
Problemet var min URL. Min såg ut så här:
BROKER_URL = 'amqp://celery:[email protected]//'
Efter det näst sista snedstrecket är vhostens namn. Ovan gav jag min vhost namnet celery_vhost. För att ansluta behövde jag ändra webbadressen till:
BROKER_URL = 'amqp://celery:[email protected]/celery_vhost'
Jag upptäckte detta när jag tittade på Rabbit-loggarna i /var/log/rabbitmq. Det finns en .log-fil som innehöll följande fel när jag hade fel URL:
{handshake_error,opening,0,
{amqp_error,access_refused,
"access to vhost '/' refused for user 'celery'",
'connection.open'}}