如何在AWS Elastic Beanstalk服务器上使用Nginx启用WebSocket?

Hol*_*Man 5 nginx amazon-web-services websocket node.js amazon-elastic-beanstalk

我在aws beantalk服务器上部署了一个nodejs应用程序,并希望使用基于WebSocket协议的socket.io功能。我知道有一个讨论,在这里可以直接连接到服务器的NodeJS而不是使用nginx的作为代理服务器。但是如果由于nginx提供的额外功能(例如静态文件等),我仍然希望使用nginx作为代理服务器。

我发现它已经在nginx 1.3.13上支持WebSocket代理,而且我发现aws elastic-beanstalk似乎仍在使用1.2.x nginx。

所以我想知道是否有任何方法可以在beantalk下升级nginx版本,以及如何启用WebSocket代理到nodejs服务器。

谢谢

小智 0

我们使用带有多个 docker 容器的 elastic beanstalk(允许您自定义 nginx 版本),如下所示

1.Nginx配置

location /ws/ 
{
  proxy_http_version 1.1;
  proxy_set_header Upgrade $http_upgrade;
  proxy_set_header Connection "upgrade";
  proxy_pass http://unix:/<<socket>>;
}
Run Code Online (Sandbox Code Playgroud)
  1. 如果您使用的是弹性负载均衡器,请在弹性负载均衡器中启用 TCP 模式负载均衡。