【发布时间】:2017-08-28 16:02:16
【问题描述】:
我正在尝试将 nginx 路由配置为能够同时使用休息服务器(使用 Java Spark)和 Websockets(使用 Netty-socketIO)。
它在本地运行良好,但无法在 aws elasticbeanstalk 上运行。
我在端口 5000 上侦听 Java Spark,这是 http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/java-se-platform.html 的默认端口
默认情况下,Elastic Beanstalk 将 nginx 代理配置为将请求转发到端口 5000 上的应用程序
这行得通。
我在端口 9000 上监听 Websocket。我确实将 ELB 协议更改为 TCP。
仍然来自 aws 文档:
要扩展 Elastic Beanstalk 的默认 nginx 配置,请将 .conf 配置文件添加到应用程序源包中名为 .ebextensions/nginx/conf.d/ 的文件夹中。 Elastic Beanstalk 的 nginx 配置自动在此文件夹中包含 .conf 文件。
我试过但没有成功:
server {
location / {
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
SocketIO-客户端连接字符串http://beanstalk-address-here.us-east-1.elasticbeanstalk.com:9000
在“网络”选项卡中,请求在失败前处于(待处理)一段时间。
【问题讨论】:
-
您是否启用了目标群体的粘性?没有它,我猜网络套接字无法工作
标签: java nginx websocket socket.io amazon-elastic-beanstalk