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