Traefik 是一个常用的反向代理工具,可以实现多种功能,包括重定向。以下是使用 Traefik 进行重定向的示例代码:
version: '3'
services:
image: yourapp:latest
labels:
- "traefik.enable=true"
- "traefik.http.routers.my-router.rule=Host(`example.com`)"
- "traefik.http.routers.my-router.entrypoints=websecure"
- "traefik.http.routers.my-router.tls=true"
- "traefik.http.routers.my-router.tls.certresolver=myresolver"
- "traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https"
- "traefik.http.routers.my-router.middlewares=redirect-to-https@docker"
- "traefik.http.routers.my-router.service=my-service"
- "traefik.http.services.my-service.loadbalancer.server.port=80"
image: traefik:v2.5
ports:
- "80:80"
- "443:443"
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
- ./traefik.yml:/traefik.yml:ro
- acme:/acme
- acme.json:/acme.json
command:
- "--providers.docker=true"
- "--providers.docker.exposedbydefault=false"
- "--entrypoints.web.address=:80"
- "--entrypoints.websecure.address=:443"
- "--certificatesresolvers.myresolver.acme.tlschallenge=true"
- "--certificatesresolvers.myresolver.acme.email=example@email.com"
- "--certificatesresolvers.myresolver.acme.storage=/acme/acme.json"
- "--api.insecure=true"
- "--api.dashboard=true"
- "--log.level=INFO"
volumes:
acme:
acme.json:
driver: local
上述代码中,我们使用了 Traefik 的 Docker 提供程序来查找配置和服务。 my-router
是我们要在此示例中进行重定向的路由器名称,my-service
是指定要重定向的服务的名称。在我们的示例中,我们在 my-router
的配置中使用了一个 middleware,称为 redirect-to-https
,它将在 http 访问中使用。最后,我们使用 TLS 终止方案,通过一个指向 http 的 301 重定向,将请求重定向到 HTTPS。
Traefik 重定向是一个