Saya menemukan Connection rest by peer error, dan menganggap RabbitMQ tidak mendengarkan di port atau ada firewall yang memblokirnya. Bukan itu masalahnya.
Menjalankan RabbitMQ di Ubuntu 16.04.2 LTS, versi diinstal oleh apt:3.5.7-1ubuntu0.16.04.1
Output dari 'netstat -a' untuk port Rabbit 5672 tampak seperti:
$ netstat -a|grep -i amqp
tcp6 0 0 [::]:amqp [::]:* LISTEN
Namun, Rabbit sebenarnya mendengarkan pada alamat IPv4 dan alamat IPv6. Saya memverifikasi ini dengan netcat.
Untuk menjangkau Rabbit dari komputer lain, Anda harus menyiapkan akun pengguna dengan perintah seperti berikut:
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 .* .* .*
Masalahnya adalah URL saya. Milik saya tampak seperti:
BROKER_URL = 'amqp://celery:[email protected]//'
Setelah itu garis miring kedua dari belakang adalah nama vhost. Di atas, saya memberi vhost saya nama celery_vhost. Untuk terhubung, saya perlu mengubah URL menjadi:
BROKER_URL = 'amqp://celery:[email protected]/celery_vhost'
Saya menemukan ini dengan melihat log Kelinci di /var/log/rabbitmq. Ada file .log yang berisi kesalahan berikut ketika saya salah URL:
{handshake_error,opening,0,
{amqp_error,access_refused,
"access to vhost '/' refused for user 'celery'",
'connection.open'}}