AWS Elastic Beanstalk上的Tomcat:暴露多个端口

3
我有一个使用WAR文件部署在Elastic Beanstalk上的Play 2.3.6应用程序。该应用程序通过端口80公开常规HTTP。该应用程序还公开了另一个端口(2551),用于构建Akka集群。但是,在部署到AWS时,即使是本地主机,该应用程序也无法连接到2551端口。是否可以通过Elastic Beanstalk上的Tomcat公开多个端口?这些端口不应通过servlet提供服务,而是通过普通socket进行传输。Akka端口不应向外部世界(通过负载均衡器)公开,而应只在EC2实例之间公开。

我认为您无法在Elastic Beanstalk上公开多个端口,但我找不到任何官方来源来确认。有人在EB上使用Docker观察到相同的行为:https://dev59.com/yoXca4cB1Zd3GeqPO-bg#mUkQoYgBc1ULPQZFMxKJ - Céline Aussourd
嗨,稍微解释一下。 我不想通过负载均衡器公开端口,而是在EC2实例之间进行通信。 - DkM
1个回答

1

你尝试过"Worker"环境层了吗?

基本上,我会为需要通过http公开的应用程序创建一个Web服务器层,并为执行任何后台作业(例如清理、同步)创建一个工作环境。

这里有一些AWS文档,解释了两者之间的区别: http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/concepts.concepts.architecture.html http://aws.amazon.com/blogs/aws/background-task-handling-for-aws-elastic-beanstalk/

几周前,我曾向AWS支持提出类似的问题,以了解是否可以在同一Beanstalk容器中运行2个应用程序:

http://xxx.elasticbeanstalk.com/mainapp/
http://xxx.elasticbeanstalk.com/secndaryapp/

他们的建议是在独立的容器中运行每个应用程序。
更新: 我刚刚注意到你在这里问了类似的问题。 你能检查一下你的路由表吗?也许你需要将网关附加到它上面(互联网或VPN)。

嗨,似乎路由表等都没问题 :( 将其拆分为多个应用程序将非常困难,但也许没有其他办法。 - DkM

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接