【问题标题】:Traefik - local https not working. Unable to reach serverTraefik - 本地 https 不工作。无法访问服务器
【发布时间】:2018-10-31 08:00:31
【问题描述】:

我尝试使用 traefik 为我的 docker-services 设置反向代理。当我运行服务时,在 traefik 的 Web UI 中,我可以看到映射,但仅适用于 http,尽管我在 traefik.toml 文件中指定了 https。我也无法直接访问我的服务。所有服务都在同一个网络中。所以我不确定是什么原因造成的。

traefik.toml

logLevel = "DEBUG"
defaultEntryPoints = ["https","http"]

address = ":8080"

[entryPoints]
  [entryPoints.http]
  address = ":80"
    [entryPoints.http.redirect]
    entryPoint = "https"
  [entryPoints.https]
  address = ":443"
  [entryPoints.https.tls]
    [[entryPoints.https.tls.certificates]]
      certFile = "/certs/journal.crt"
      keyFile = "/certs/journal.key"

[retry]

[docker]
endpoint = "unix:///var/run/docker.sock"
domain = "journal.com"
watch = true
exposedbydefault = false

docker-compose.yml

version: '3'
services:
  reverse-proxy:
    image: traefik
    ports:
      - "80:80"
      - "8080:8080"
      - "443:443"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - ./traefik/traefik.toml:/traefik.toml
      - ./traefik/certs/journal.crt:/certs/journal.crt
      - ./traefik/certs/journal.key:/certs/journal.key
    networks:
      - web
  prisma:
    image: prismagraphql/prisma:1.8
    restart: always
    ports:
    - "${PRISMA_HOST_PORT}:4466"
    environment:
      PRISMA_CONFIG: |
        port: 4466
        managementApiSecret: ${PRISMA_API_SECRET}
        databases:
          default:
            connector: postgres
            host: ${PRISMA_DB_HOST}
            port: ${PRISMA_DB_PORT}
            database: ${PRISMA_DB}
            user: ${PRISMA_DB_USER}
            password: ${PRISMA_DB_PASSWORD}
            migrations: ${PRISMA_ENABLE_MIGRATION}
  graphql-server:
    build: ./graphql-server/
    ports:
      - "${GRAPHQL_SERVER_PORT}:8080"
    volumes:
      - ./graphql-server:/usr/src/app
    depends_on:
      - prisma
    command: ["./wait-for-it.sh", "prisma:${PRISMA_HOST_PORT}", "--", "npm", "start"]
    environment:
      - PRISMA_SERVICE_NAME=prisma
      - PRISMA_API_SECRET
      - PRISMA_HOST_PORT
      - GRAPHQL_SERVER_PORT
      - APOLLO_ENGINE_KEY
    labels:
      - "traefik.backend=graphql"
      - "traefik.frontend.rule=Host:api.journal.com"
      - "traefik.enable=true"
      - "traefik.port=${GRAPHQL_SERVER_PORT}"
    networks:
      - web
  react-client:
    build: ./react-client/
    ports:
      - "${REACT_CLIENT_PORT}:3000"
    volumes:
      - ./react-client:/usr/src/app
    depends_on:
      - graphql-server
    environment:
      - GRAPHQL_SERVER_PORT
      - REACT_CLIENT_PORT
networks:
  web:
    external: true

提前致谢。

【问题讨论】:

    标签: docker docker-compose traefik


    【解决方案1】:

    尝试将以下 docker 标签添加到您的 graphql-server 服务:

    traefik.frontend.entryPoints=http,https
    

    我也面临同样的问题。我在 traefiks (v1.7) 主配置中定义了 'defaultEntryPoints = ["http", "https"]',但是当 docker 容器出现并在 traefik 中注册时,前端只能通过 HTTP 访问,而不是 HTTPS - 除非我定义入口点直接通过 docker 标签。

    问候, 最大值

    【讨论】:

    • 欢迎来到 StackOverflow!您应该尝试添加一个简短说明,说明为什么这样做。
    猜你喜欢
    • 2019-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-03
    • 2021-09-17
    • 2011-05-23
    • 2015-12-14
    相关资源
    最近更新 更多