Websockets avec socket.io on AWS Elastic Beanstalk

j'essaie de configurer un serveur Web avec socket.io on AWS Elastic Beanstalk. Arrivés à la demande initiale to /socket.oi/1/?t=xxxx et fonctionne, mais le protocole de transfert websocket échoue avec ce message d'erreur:

WebSocket connection to 'ws://xxxxxx.elasticbeanstalk.com/socket.io/1/websocket/a4DTCN2BeJZuiSaphVyz' failed: Unexpected response code: 502 

de googler et de regarder l'erreur 502 (Bad Gateway) il semble avoir quelque chose à voir avec le NGINX-proxy. Alors comment configurer le nginx pour qu'il fonctionne avec websockets?

ne trouve rien dans la documentation D'AWS sur la configuration pour les websockets.

28
demandé sur funparko 2013-04-09 20:22:20

3 réponses

vous pourriez essayer de passer par la difficulté de configurer nginx, mais si vous utilisez seulement des websockets, il serait plus facile d'éteindre tous les proxys et de se connecter directement.

c'est sous votre environnement d'application dans le tableau de bord élastique en haricot blanc. Il y a un bouton "Actions"à droite. Sélectionnez "Modifier / Charger La Configuration"

enter image description here

27
répondu Adam 2013-04-17 15:37:06

il y a un inconvénient important avec l'approche ditch-nginx. Vous devrez déplacer https dans le noeud et aussi dans votre socket.io appelle. Il est beaucoup plus facile de gérer https dans la configuration du serveur plutôt que dans le noeud.

si vous n'avez pas besoin de https, je suggère de décharger le proxy et d'aller directement au noeud.

4
répondu Michael Draper 2015-11-29 02:25:49

Socket.io par défaut au port 8080. Assurez-vous que le port 8080 est activé sur votre groupe de sécurité EC2 en ajoutant "Inbound > Custom TCP Rule" dans les groupes de sécurité AWS Admin > EC2>.

3
répondu jp_inc 2016-08-24 20:20:34