node.js - Docker AWS 证书管理器 SSL NodsJS 失败

标签 node.js ssl docker aws-cloudformation docker-swarm

我使用 Docker 提供的 Cloudformation 模板创建并部署了一个 docker swarm 集群 NodeJS 应用程序。

我的 NodeJS 应用程序将端口 80 和 443 映射到端口 3000。

我可以确认弹性负载均衡器具有端口 80 和 443 的监听器。

为什么我可以通过 http 成功访问我的应用程序,但不能通过 https 成功访问我的应用程序?

例如: http://app.myapp.com/api/health响应成功但不响应https://app.myapp.com/api/health

最佳答案

通过网络以及官方 Docker 文档和论坛进行更多挖掘之后。

我发现以下内容非常有帮助 https://docs.docker.com/docker-for-aws/load-balancer/#more-full-examples

诀窍是向服务添加标签并公开端口 443。

请注意,如果您使用 stack deploy,则 label should be on the deploy level not on the service level

这是与堆栈部署一起使用的示例 docker compose 文件

version: '3.3'

services:
  node:
    image: "8574365892346589.dkr.ecr.eu-central-1.amazonaws.com/app:1.5.1"
    working_dir: /home/node/app
    environment:
      - APP_PORT=3000
      - NODE_ENV=production
    volumes:
      - localstorage:/home/node/app
    ports:
      - "80:3000"
      - "443:3000"
    deploy:
      mode: global
      labels:
        - "com.docker.aws.lb.arn=arn:aws:acm:eu-central-1:873456923456:certificate/blahblahblahblahblahblah"
      update_config:
        parallelism: 2
        delay: 5s
      restart_policy:
        condition: any
        delay: 5s
        max_attempts: 5
        window: 120s

volumes:
  localstorage:

注意部署下的标签如何

希望有帮助

关于node.js - Docker AWS 证书管理器 SSL NodsJS 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47873333/

相关文章:

javascript - Mocha 全局范围界定问题

javascript - 如何在 NodeJS 中对数据库的多个异步调用中发送响应?

node.js - 使用 PostgreSQL 的 SequelizeDatabaseError UPDATE

mongodb - 无法从 Spark 应用程序连接到启用 SSL 的 mongo 集群

docker - 使用 ln 查看 docker 内已安装卷的协议(protocol)错误

javascript - 在 ReactJS 中,如何通过将 props 从父组件传递到子组件来初始化状态?

html - 通过 HTTPS 加载 Google 字体仍然会出现 MixedContent 错误

c# - XmlDocument.Load : Could not create SSL/TLS secure channel

python - pip 在 Docker 中被杀死

docker - 如何在 gitlab 作业中从 docker 镜像执行命令?