首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当我使用docker-compose运行时,Express网关总是返回Bad gateway

当我使用docker-compose运行时,Express网关总是返回Bad gateway
EN

Stack Overflow用户
提问于 2019-12-18 15:44:15
回答 1查看 585关注 0票数 1

我尝试使用带有Docker的Express Gateway作为每个微服务的容器。到目前为止,它在本地测试中表现得非常好。通过实现EG来使用Docker时出现了问题。我不知道问题出在哪里。在LOG_LEVEL = debug上没有完整的描述。在此之前,我使用了没有EG的docker,然后与其他微服务进行了通信。请帮帮忙。

gateway.config.yml

代码语言:javascript
复制
http:
  port: 8080
admin:
  port: 9876
apiEndpoints:
  authAPI:
    host: '*' # i tried with egateway, localhost, 127.0.0.1 but still not working
    paths:
      - '/users/signin'
      - '/users/signup'
      - '/users/oauth/facebook'
      - '/users/auth/google'
      - '/users/auth/google/callback'
      - '/users/secret'
      - '/users/get-user-google'
      - '/dashboard'
      - '/test'
  crudAPI:
    host: '*'
    paths:
      - '/users/get-user-data'
      - '/users/delete-user-data'
      - '/users/add-user-data'
      - '/users/get-one-user-data/*'
      - '/users/update-user-data'
      - '/users/update-pass-user-data'
serviceEndpoints:
  authService:
    url: 'http://localhost:3003'
  crudService:
    url: 'http://localhost:3004'
policies:
  - log
  - proxy
  - jwt
  - cors
  - jwt-custom1
pipelines:
  crud:
    apiEndpoints:
      - crudAPI
    policies:
      - cors:
          - action:
              origin: '*'
              methods: 'GET, POST, PUT, DELETE'
              allowedHeaders: 'X-Requested-With,content-type,Authorization'
              credentials: true
      - proxy:
          - action:
              serviceEndpoint: crudService
  auth:
    apiEndpoints:
      - authAPI
    policies:
      - proxy:
          - action:
              serviceEndpoint: authService

docker-compose.yml

代码语言:javascript
复制
version: '3'

services:

  egateway:
    hostname: egateway
    container_name: egateway
    build: './test-eg2'
    ports: 
      - "8080:8080"
    depends_on: 
      - mongo
    environment: 
      - LOG_LEVEL=debug

  api-auth:
    container_name: api-auth
    build: './api-auth'
    ports: 
      - "3003:3003"
    links: 
      - mongo
      - egateway

  api-crud:
    container_name: api-crud
    build: './api-crud'
    ports: 
      - "3004:3004"
    links: 
      - mongo
      - egateway

  mongo:
    container_name: mongo-dbx
    image: mongo
    ports: 
      - "27017:27017"

来自日志级别的结果=调试

我需要你的帮助。感谢您审阅此问题。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-12-18 15:52:08

您的auth-service和crud-service的URL不应该是localhost。它应该是:

代码语言:javascript
复制
serviceEndpoints:
  authService:
    url: 'http://api-auth:3003'
  crudService:
    url: 'http://api-crud:3004'

api-authapi-crud是您的docker-compose网络中这两个容器的主机名。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59387520

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档