猿问

如何使用 traefik 在 docker compose 中代理到后端

我正在使用 traefik 和 docker compose 设置前端和后端,如下所示:


version: "3.7"

services:

  frontend:

    image: frontend:tag

    networks:

      - traefik-network

    labels:

      - traefik.enable=true

      - traefik.port=80

      - traefik.docker.network=traefik-network

      - traefik.http.routers.frontend.entrypoints=web

      - traefik.http.routers.frontend.rule=PathPrefix(`/`)


  backend:

    image: backend:tag

    networks:

      - traefik-network

    labels:

      - traefik.enable=true

      - traefik.port=3000

      - traefik.docker.network=traefik-network


reverse-proxy:

    image: traefik:v2.0

    networks:

      - traefik-network

    labels:

      - traefik.docker.network=traefik-network

      - traefik.enable=true

    command:

      - --log.level=DEBUG

      - --api.insecure=true

      - --providers.docker=true

      - --providers.docker.exposedbydefault=false

      - --entryPoints.web.address=:80

      - --entryPoints.name.forwardedHeaders.insecure=true

    ports:

      - "80:80"

      - "3000:3000"

      - "8080:8080"

    volumes:

      - /var/run/docker.sock:/var/run/docker.sock:ro


networks:

  traefik-network:

    name: traefik-network


之前我使用 nginx 创建从 FE 到 BE 的代理,如下所示


upstream go_backend {

  server backend:8085 max_fails=3 fail_timeout=50;

}


location /api/ {

   proxy_pass http://go_backend/;

}

我如何使用 traefik v2 将请求从 FE 代理到 BE?没有 toml 文件。


您期望什么结果:当我转到本地主机时,来自服务器的请求被转发到后端:3000。


现在发生了什么:当我转到本地主机时,请求未到达后端。


慕斯王
浏览 101回答 1
1回答

白猪掌柜的

对于处于相同位置的任何人:&nbsp;-&nbsp;traefik.docker.network=traefik-network &nbsp;-&nbsp;traefik.http.routers.backend.entrypoints=backend请记住设置您的服务的入口点:- traefik.http.routers.<s-name>.entrypoints=<s-name>
随时随地看视频慕课网APP

相关分类

Go
我要回答