Websockets mit AWS Elastic Beanstalk
Ich versuche, mein websockets arbeiten mit Amazon Web Service und Elastic Beanstalk (ELB).
Richte ich einen proxy-Protokoll nach:
http://docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/enable-proxy-protocol.html
Habe ich eröffnet, alle eingehenden Datenverkehr an meinen load-balancer und andere Sicherheitsgruppen auf allen ports für alle IPs.
Ich hielt auch die load-balancer-listerner wie HTTP auf port 80.
Meine websocket-Verbindung, gibt die folgende Fehlermeldung beim Versuch, eine Verbindung auf port 80:
failed: Fehler bei der WebSocket-handshake: Unexpected response code: 400
Und dieser Fehler auf dem port 8080:
fehlgeschlagen: Fehler beim Verbindungsaufbau: net::ERR_CONNECTION_REFUSED
Wäre dankbar für Vorschläge, ich bin stecken an diesem Punkt.
Dank!
- hast du eine Lösung, ich bin vor dem gleichen problem
- github.com/Automattic/socket.io/issues/1846
- Amazon Elastic Load Balancers nicht angezeigt-support-web-sockets in dieser Zeit, wenn Sie setup mithilfe von HTTP-Listener. Die vorgeschlagenen work-around ist die Verwendung einer TCP-basierten listener. Siehe den obigen link.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nach Konfiguration der EC2-Sicherheitsgruppe Ihre Anwendung mit der öffentlichen IP.
Aber Sie noch erhalten Problem mit der Verwendung von EB-URL.
Um dieses Problem zu lösen, müssen Sie ändern, EB-Konfiguration.
Können Sie jetzt klicken, EB-URL.
AWS lanciert neue Application Load Balancer unterstützt web-sockets. Ändern Sie Ihre ELB, um die Anwendung Laden, mit Balancer, und das wird das Problem lösen.
https://aws.amazon.com/blogs/aws/new-aws-application-load-balancer/
Sollten Sie erstellen reverse-proxy für den Nginx-server. Sie können diese config-Datei in Sie .ebextensions Ordner, Nginx Unterstützung WS.
Auch in der EBS-load-balancer-Konfiguration ändern Sie das Protokoll von HTTP auf TCP.
Finden Sie diese blog einrichten die sichere WebSocket.
Ich war auch auf der Suche für mögliche Problemumgehung für dieses Problem, aber es ist ganz einfach, unabhängig davon, was die Plattform, die Sprache, die Sie verwenden, um zu entwickeln websocket-Programm auf AWS EC2, wie ich mit Node.js nginx in meinem Fall sollte diese Arbeit für alle unterstützen Plattformen.
Konfigurieren Sie Die Security-Gruppe
gestartet haben Sie eine Elastic Beanstalk-Instanz, die in dieser region für Ihre
app.
Regel als gut zu hören in Ihrer websocket port.
Und das ist es!
Hinweis: Wenn etwas nicht funktioniert, überprüfen Sie die Registerkarte "Veranstaltungen" in der Beanstalk-Anwendung /- Umgebungen und finden Sie heraus, was falsch gelaufen ist.