मैंने अपनी एक डॉकटर-सेवाओं के लिए ट्रैफ़िक का उपयोग करके रिवर्स-प्रॉक्सी स्थापित करने का प्रयास किया। जब मैं सेवाएं चलाता हूं, तो ट्रैफिक के वेब यूआई में मैं मैपिंग देख सकता हूं लेकिन केवल 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

अग्रिम में धन्यवाद।

2
Dhanushu Uzumaki 21 मई 2018, 19:05

1 उत्तर

सबसे बढ़िया उत्तर

अपनी ग्राफ़िकल-सर्वर सेवा में निम्नलिखित डॉकर लेबल जोड़ने का प्रयास करें:

traefik.frontend.entryPoints=http,https

मैं भी ऐसी ही समस्या का सामना कर रहा हूँ। मेरे पास traefiks (v1.7) मुख्य कॉन्फ़िगरेशन में 'defaultEntryPoints = ["http", "https"]' परिभाषित है, लेकिन जब docker कंटेनर आते हैं और traefik के भीतर पंजीकरण करते हैं तो फ्रंटएंड केवल HTTP के माध्यम से उपलब्ध होता है, HTTPS नहीं - जब तक कि मैं परिभाषित नहीं करता सीधे डॉकटर लेबल के माध्यम से प्रवेश बिंदु।

सादर, मैक्स

0
Max F. 18 अक्टूबर 2018, 16:25