AWS Elastic Beanstalk 上的 Tomcat:公开多个端口

Posted

技术标签:

【中文标题】AWS Elastic Beanstalk 上的 Tomcat:公开多个端口【英文标题】:Tomcat on AWS Elastic Beanstalk: Exposing multiple ports 【发布时间】:2015-02-13 16:39:18 【问题描述】:

我有一个 Play 2.3.6 应用程序,我使用 WAR 文件将它部署到在 Elastic Beanstalk 上运行的 Tomcat。该应用程序为普通 HTTP 公开端口 80。该应用程序还公开了另一个端口 (2551),用于构建 Akka 集群。但是,当部署到 AWS 时,应用程序被拒绝连接到 localhost 上的端口 2551。是否可以通过 Elastic Beanstalk 上的 Tomcat 公开多个端口?

它不应该通过 servlet 提供服务,而是一个普通的套接字。并且 akka 端口不应该暴露给外界(通过负载均衡器),只在 EC2 实例之间。

【问题讨论】:

我认为您不能在 Elastic Beanstalk 上公开多个端口,但我找不到任何官方来源来确认这一点。人们在 EB 上使用 Docker 观察到相同的行为:***.com/questions/27381651/… 嗨,只是为了扩大一点。我不希望端口通过负载均衡器公开,而是在 EC2 实例之间公开 【参考方案1】:

您是否尝试过“工人”环境层?

基本上,我会为需要通过 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/

他们的建议是在自己的容器中运行每个应用程序。

更新: 我刚刚注意到你问了一个类似的问题here 你能检查你的路由表吗?也许您需要为其附加网关(Internet 或 ***)

【讨论】:

您好,路由表等似乎很好 :( 拆分成多个应用会非常困难,但也许没有其他方法了。

以上是关于AWS Elastic Beanstalk 上的 Tomcat:公开多个端口的主要内容,如果未能解决你的问题,请参考以下文章

如何避免 AWS Elastic Beanstalk 上的 TooManyApplicationVersion 异常?

反应:AWS Elastic Beanstalk 上的 502 错误网关

AWS Elastic Beanstalk 上的 Wordpress

AWS Elastic Beanstalk 上的 Spring Boot 并记录到文件

AWS Elastic Beanstalk 上的 Django manage.py

如何获取命令以从 Elastic Beanstalk 上的 Dockerfile.aws.json 运行?