RabbitMQ-Verbindung über Nginx

Ich bin versucht, setup-rabbitmq es von extern erreichbar ist (nicht localhost) durch nginx.

nginx-rabbitmq.conf:

server {
    listen       5672;
    server_name  x.x.x.x;
    location /{
        proxy_pass http://localhost:55672/;
    }
}

rabbitmq.conf:

[
 {rabbit,
  [
   {tcp_listeners, [{"127.0.0.1", 55672}]}
  ]
 }
]

Standardmäßig guest-Benutzer kann nur die Interaktion von localhost, also brauchen wir einen anderen Benutzer mit den erforderlichen Berechtigungen, etwa so:

sudo rabbitmqctl add_user my_user my_password
sudo rabbitmqctl set_permissions my_user ".*" ".*" ".*"

Jedoch wenn ich versuche eine Verbindung zu rabbitmq durch pika ich bekomme ConnectionClosed Ausnahme

import pika
credentials = pika.credentials.PlainCredentials('my_username', 'my_password')
pika.BlockingConnection(
    pika.ConnectionParameters(host=ip_address, port=55672, credentials=credentials)
)

--[wirft ConnectionClosed Ausnahme]--

Wenn ich die gleichen Parameter verwenden, aber ändern Sie den host auf "localhost" und port 5672 dann Verbinde ich ok:

pika.ConnectionParameters(host=ip_address, port=55672, credentials=credentials)

Habe ich geöffnet-port 5672 auf den AVP-web-Konsole, und die Kommunikation durch nginx ist passiert: nginx access.log-Datei zeigt

[30/Apr/2014:22:59:41 +0000] "AMQP\x00\x00\x09\x01" 400 172 "-" "-" "-"

Was zeigt einen 400-Statuscode der Antwort (bad request).

So aussieht, schlägt die Anforderung fehl, wenn man durch nginx, funktioniert aber, wenn wir verlangen, rabbitmq direkt.

Hat sonst noch jemand ähnliche Probleme/habe rabbitmq zu arbeiten für externe Nutzer, die über nginx? Gibt es eine log-Datei rabbitmq, wo ich sehen kann, jede Anfrage und helfen weiter bei Problemen?

InformationsquelleAutor rikAtee | 2014-04-30
Schreibe einen Kommentar