-1

我想在我的电脑上本地运行我的 express-gateway 并有两个服务用于访问我的网关,问题是总是有同样的问题“坏网关”我用其他公共 api 测试并且工作正常,如何在本地运行它没有这个问题?因为总是显示“坏网关”:

我的 docker-compose.yml

version: "3.4"
services:
  express-gateway:
    image: gateway:latest
    build:
      context: ./
      dockerfile: Dockerfile
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.express-gateway.rule=Host(`eg.127.0.0.1.nip.io`)"
      - "traefik.http.routers.express-gateway.entrypoints=web"
      - "traefik.http.services.express-gateway.loadbalancer.server.port=9090"
    volumes:
      - ./gateway.config.yml:/usr/src/app/config/gateway.config.yml

  ingress-controller:
    image: traefik:v2.0
    command:
      - "--api.insecure=true"
      - "--providers.docker=true"
      - "--providers.docker.exposedbydefault=false"
      - "--entrypoints.web.address=:80"
    ports:
      - 80:80
      - 8080:8080
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock

这是我的快速网关上的配置。我的 gateway.config.yml :

http:
  port: 9090
admin:
  port: 9876
  host: 0.0.0.0
apiEndpoints:
  events:
    host: "*"
    paths: ["/api/events*", "/swagger*"]
    methods: ["GET", "PATCH"]
  eventsCreate:
    host: "*"
    paths: "/api/events*"
    methods: ["POST", "PUT", "OPTIONS"]
  auth:
    host: "*"
    paths: "/api/auth*"
    methods: ["POST", "GET", "OPTIONS"]
serviceEndpoints:
  auth:
    url: "http://127.0.0.1:59868"
  events:
    url: "http://127.0.0.1:5000"
policies:
  - basic-auth
  - cors
  - expression
  - key-auth
  - log
  - oauth2
  - proxy
  - rate-limit
  - jwt
  - request-transformer
pipelines:
  authPipeline:
    apiEndpoints:
      - auth
    policies:
      - cors:
      - log:
          action:
            message: "auth ${req.method}"
      - proxy:
          action:
            serviceEndpoint: auth
            changeOrigin: true
  eventsPipeline:
    apiEndpoints:
      - events
    policies:
      - cors:
      - log:
          action:
            message: "events ${req.method}"
      - proxy:
          action:
            serviceEndpoint: events
            changeOrigin: true
  eventsCreatePipeline:
    apiEndpoints:
      - eventsCreate
    policies:
      - cors:
      - log:
          action:
            message: "events ${req.method}"
      - jwt:
          action:
            secretOrPublicKey: "MORTADELAIsMyPassion321"
            checkCredentialExistence: false
      - proxy:
          action:
            serviceEndpoint: events
            changeOrigin: true
4

1 回答 1

0

错误网关通常是代理策略引发的错误——在这种情况下,您应该能够检查日志并查看细节,然后从那里开始。

于 2020-03-18T12:55:30.497 回答