Redis
 sql >> Database >  >> NoSQL >> Redis

Il sedano fornisce la connessione ripristinata dal peer

Ho trovato il resto della connessione per errore peer e ho pensato che RabbitMQ non fosse in ascolto sulla porta o che ci fosse un firewall che lo bloccava. Non era così.

Esecuzione di RabbitMQ su Ubuntu 16.04.2 LTS, versione installata da apt:3.5.7-1ubuntu0.16.04.1

L'output di 'netstat -a' per la porta 5672 di Rabbit era simile a:

$ netstat -a|grep -i amqp
tcp6       0      0 [::]:amqp               [::]:*                  LISTEN

Tuttavia, Rabbit stava effettivamente ascoltando sia l'indirizzo IPv4 che l'indirizzo IPv6. L'ho verificato con netcat.

Per raggiungere Rabbit da un'altra macchina, devi configurare un account utente con qualcosa come i seguenti comandi:

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

Il problema era il mio URL. Il mio sembrava:

BROKER_URL = 'amqp://celery:[email protected]//'

Dopo quella penultima barra in avanti c'è il nome del vhost. Sopra, ho dato al mio vhost il nome celery_vhost. Per connettermi, dovevo cambiare l'URL in:

BROKER_URL = 'amqp://celery:[email protected]/celery_vhost'

L'ho scoperto guardando i log di Rabbit in /var/log/rabbitmq. C'è un file .log che conteneva il seguente errore quando avevo l'URL sbagliato:

{handshake_error,opening,0,
{amqp_error,access_refused,
"access to vhost '/' refused for user 'celery'",
'connection.open'}}