Dies sind korrekte Informationen. Sie müssen einige zusätzliche Konfigurationsschritte für Ihre Elastic Beanstalk-Bereitstellung ausführen, damit WebSockets (Socket.io oder andere) funktionieren.
Sobald Sie Ihre Elastic Beanstalk-Umgebung zu erstellen, müssen Sie Ihre Load Balancer konfigurieren TCP-Verbindungen zu akzeptieren, und fügen Sie zu Ihrem Knoten Projekt Stammverzeichnis einer Konfigurationsdatei:
Konfigurieren von Load Balancer:
- Head over auf Ihrer EC2-Konsole und wählen Sie die Registerkarte Balancers laden
- die Load-Balancer auswählen, die
aus die Liste Ihrer ELB Umgebung gehört
- die Registerkarte Hörer wählen
- Ändern Sie die Instanz Protocol auf TCP Standardeinträge
der Konfigurationsdatei hinzufügen:
- Im Stammverzeichnis des Knotens Projekt erstellen Ordner
.ebextensions
Erstellen Sie eine Datei enable-websockets.config
in Ihren neuen .ebextensions
Ordnern mit den folgenden Inhalten genannt:
container_commands:
enable_websockets:
command: |
sed -i '/\s*proxy_set_header\s*Connection/c \
proxy_set_header Upgrade $http_upgrade;\
proxy_set_header Connection "upgrade";\
proxy_pass_request_headers on;\
' /tmp/deployment/config/#etc#nginx#conf.d#00_elastic_beanstalk_proxy.conf
Diese Datei der NGINX Reverse-Proxy, wie Sie den HTTP 101
Upgrade-Statuscode zu behandeln, die WebSockets mit dem Anwendungsserver kommunizieren müssen.
Können Sie mir bitte erklären, was der Befehl macht? – Jocket
Meine http URL funktioniert gut.Es verwendet WS selbst. Aber wenn ich das https benutze, schaltet es auf Polling um. Weißt du warum? – Jocket
@Jocket Der Befehl fügt die Zeilen nach 'sed -i' zur temporären NGINX-Konfigurationsdatei hinzu, die Elastic Beanstalk während der Bereitstellung verwendet. Es gibt derzeit keine Möglichkeit, direkt auf die NGINX-Konfigurationsdateien von EB zuzugreifen. Daher müssen diese während der Laufzeit/Bereitstellung geändert werden. Was Ihr HTTPS-Problem betrifft, müssen Sie ein SSL-Zertifikat für den TCP-Listener Ihres Components-Port 443 konfigurieren. Ich bin sicher, dass Sie Details dazu in den AWS-Dokumenten finden. Wenn Sie diese hilfreich gefunden haben, überlegen Sie bitte, ob Sie die Antwort als angenommen markieren oder markieren! –