我正在使用 traefik 版本 2(或 2.x),我想使用 traefik 路由器将所有请求从端口 80 转发到不同的端口,如 8081。所以像http://localhost/xx这样的请求将被转发到http://localhost:8081/xx URL。
我是 traefik 的新手,我正在使用 docker 进行此配置。下面是我的 docker-compose.yml 文件配置。配置此 traefik 仪表板后,会在http://localhost:8080/dashboard/#/ URL上加载,但请求转发不起作用。
version: "3"
services:
traefik:
image: "traefik:v2.1.0"
container_name: "traefik"
command:
- "--log.level=DEBUG"
- "--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:ro"
whoami:
image: "containous/whoami"
container_name: "simple-service"
labels:
- "traefik.enable=true"
- "traefik.http.routers.whoami.entrypoints=web"
- "traefik.http.services.whoami.loadbalancer.server.port=8081"
- "traefik.docker.network=proxy"
- "traefik.http.routers.whoami.rule=Host(`localhost`)"
Run Code Online (Sandbox Code Playgroud)
对此的任何帮助将不胜感激。
您需要将您的服务端口映射到8081
这是一个完全有效/经过测试的示例,您可以whoami
通过访问http://whoami.docker.local:8081或http://whoami.docker.local
version: "3"
services:
traefik:
image: traefik
command:
- --api.insecure=true
- --providers.docker=true
ports:
- "80:80"
- "8080:8080"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
labels:
- traefik.http.routers.api.rule=Host(`traefik.docker.local`)
- traefik.http.routers.api.service=api@internal
whoami:
image: containous/whoami
ports:
- "8081:80"
labels:
- traefik.http.routers.whoami.rule=Host(`whoami.docker.local`)
- traefik.http.routers.whoami.service=whoami@docker
- traefik.http.services.whoami.loadbalancer.server.port=80
Run Code Online (Sandbox Code Playgroud)
它可以在端口上运行,80也8081可以根据您的要求运行。
root@d:~# lsof -i :80,8081
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
docker-pr 28208 root 4u IPv6 51666675 0t0 TCP *:tproxy (LISTEN)
docker-pr 28265 root 4u IPv6 51671715 0t0 TCP *:http (LISTEN)
Run Code Online (Sandbox Code Playgroud)
但如果您解释一下为什么要访问 ,可能会更容易提供帮助:8081,
因为traefik使用了 ,因此我们不必执行此类重定向。
| 归档时间: |
|
| 查看次数: |
6214 次 |
| 最近记录: |