如何代理到 docker 中的后端与 traefik 组合
how to proxy to backend in docker compose with traefik
我正在使用 traefik 设置前端和后端,docker 像这样组合:
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 文件。
您期望的结果是什么:
当我转到本地主机时,来自服务器的请求被转发到 backend:3000。
现在发生了什么:
当我转到本地主机时,请求未到达后端。
对于任何处于相同位置的人:
- traefik.docker.network=traefik-network
- traefik.http.routers.backend.entrypoints=backend
记得为您的服务设置入口点:
- traefik.http.routers.<s-name>.entrypoints=<s-name>
我正在使用 traefik 设置前端和后端,docker 像这样组合:
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 文件。
您期望的结果是什么: 当我转到本地主机时,来自服务器的请求被转发到 backend:3000。
现在发生了什么: 当我转到本地主机时,请求未到达后端。
对于任何处于相同位置的人:
- traefik.docker.network=traefik-network
- traefik.http.routers.backend.entrypoints=backend
记得为您的服务设置入口点:
- traefik.http.routers.<s-name>.entrypoints=<s-name>