5

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

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

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

谢谢

4

2 回答 2

0

您需要启用额外的模块,这可以在 nginx 编译期间完成。为此,您需要在配置脚本中添加以下行。

--add-module=/root/nginx_patched/nginx_tcp_proxy_module

如果您想启用套接字,则需要它,例如对于 node.js socket.io。完整的教程可以在这里找到。抱歉链接,但这是一个相当广泛的话题。如果您从头开始,您可能需要分步指南。

希望能帮助到你。

于 2013-12-10T22:28:18.830 回答
0

我们将弹性 beanstalk 与多个 docker 容器(允许您自定义 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>>;
}
  1. 如果您使用的是弹性负载均衡器,请在弹性负载均衡器中启用 TCP 模式负载均衡。
于 2016-09-15T07:30:51.310 回答