【问题标题】:AWS Beanstalk and Docker ports = what manner of tomfoolery is this?AWS Beanstalk 和 Docker 端口 = 这是什么愚蠢的做法?
【发布时间】:2015-06-12 20:23:16
【问题描述】:

所以我有一个在端口 9000 上运行的 docker 应用程序,我希望只能通过 https 而不是 http 访问它,但是我似乎对亚马逊如何处理端口没有任何意义。简而言之,我只想公开端口 443 而不是 80(在负载均衡器层和实例层上),但无法做到这一点。

所以我的 Dockerfile 有:

EXPOSE 9000

我的 Dockerrun.aws.json 有:

{
   "AWSEBDockerrunVersion": "1",
   "Ports": [{
      "ContainerPort": "9000"
    }]
}

我似乎无法通过端口 9000 访问东西,但只能通过 80。

当我 ssh 进入 docker 容器正在运行的实例并使用 netstat 查找端口时,我得到端口 80 和 22 以及其他一些 udp 端口​​,但没有端口 9000。亚马逊到底是如何管理这个的?更重要的是,用户如何获得预期的行为?

尝试使用 ssl 和 https 也会产生同样的结果。证书已设置并映射到端口 443,我什至在 .ebextensions 配置文件中创建了一个案例来打开实例上的端口 443,但仍然没有 ssl

    sslSecurityGroupIngress:
      Type: AWS::EC2::SecurityGroupIngress
      Properties:
        GroupName: {Ref : AWSEBSecurityGroup}
        IpProtocol: tcp
        ToPort: 443
        FromPort: 443
        CidrIp: 0.0.0.0/0

让 SSL 工作的唯一方法是让负载均衡器使用端口 443 (ssl) 转发到实例端口 80(非 https),但这很荒谬。我到底如何打开实例上的 ssl 端口并将 docker 设置为使用给定的端口?有没有人成功做到这一点?

如果能提供任何帮助,我将不胜感激 - 我已经仔细研究了文档,并且已经掌握了这么多,但这只是让我感到困惑。简而言之,我只想公开端口 443 而不是 80(在负载均衡器层和实例层上),但无法做到这一点。

祝你有美好的一天

干杯

【问题讨论】:

    标签: ssl amazon-web-services docker amazon-elastic-beanstalk


    【解决方案1】:

    已知问题,来自http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create_deploy_docker_image.html

    您可以指定多个容器端口,但 Elastic Beanstalk 仅使用第一个端口将您的容器连接到主机的反向代理并路由来自公共 Internet 的请求。

    因此,如果您需要多个端口,AWS Elastic Beanstalk 可能不是最佳选择。至少 Docker 选项。

    关于 SSL - 我们通过使用专用 nginx 实例和 proxy_pass'ing 到 Elastic Beanstalk 环境 URL 来解决它。

    【讨论】:

    • 我只想公开端口 443 而不是 80(在负载均衡器层和实例层上),但无法做到这一点。我很想知道更多关于你是如何解决这个问题的。据我了解,beantalk 是一个负载均衡器,其下的几个实例随负载增长。目前我还没有弄清楚如何在实例上公开端口 443 - 它似乎只使用端口 80。所以如果我理解正确,你有一个单独的 nginx ec2 框,用作反向代理或类似的 - 转发端口 80到 443 端口的流量?
    • 是的,完全正确。我们不直接使用弹性 beanstalk 环境(不同的原因),我们总是使用单独的 ec2 实例和 nginx 作为反向代理。在这种情况下,您可以在一个地方处理所有 SSL 内容,例如证书等。
    • 好的,谢谢。这可能也是我唯一的选择。希望aws能整理出像这样基本的东西。
    猜你喜欢
    • 2015-02-12
    • 2018-02-15
    • 2015-04-16
    • 2015-05-13
    • 2021-11-18
    • 2011-06-09
    • 2019-11-14
    • 2020-07-23
    相关资源
    最近更新 更多