J'ai trouvé l'erreur Connection rest by peer et j'ai supposé que RabbitMQ n'écoutait pas sur le port ou qu'un pare-feu le bloquait. Ce n'était pas le cas.
Exécution de RabbitMQ sur Ubuntu 16.04.2 LTS, version installée par apt :3.5.7-1ubuntu0.16.04.1
La sortie de 'netstat -a' pour le port 5672 de Rabbit ressemblait à :
$ netstat -a|grep -i amqp
tcp6 0 0 [::]:amqp [::]:* LISTEN
Cependant, Rabbit écoutait en fait à la fois l'adresse IPv4 et l'adresse IPv6. J'ai vérifié cela avec netcat.
Pour atteindre Rabbit depuis une autre machine, vous devez configurer un compte utilisateur avec quelque chose comme les commandes suivantes :
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 .* .* .*
Le problème était mon URL. Le mien ressemblait à :
BROKER_URL = 'amqp://celery:[email protected]//'
Après cette avant-dernière barre oblique se trouve le nom du vhost. Ci-dessus, j'ai donné à mon vhost le nom celery_vhost. Pour me connecter, j'ai dû changer l'URL en :
BROKER_URL = 'amqp://celery:[email protected]/celery_vhost'
J'ai découvert cela en regardant les journaux de Rabbit dans /var/log/rabbitmq. Il y a un fichier .log qui contenait l'erreur suivante lorsque j'avais la mauvaise URL :
{handshake_error,opening,0,
{amqp_error,access_refused,
"access to vhost '/' refused for user 'celery'",
'connection.open'}}