Skip to content

Traefik 重定向配置

本指南将帮助您在 Coolify 中使用 Traefik 配置重定向功能。

标准应用程序和基于Docker Compose的应用程序/一键部署服务的配置略有不同。

标准应用程序

  • 您需要为资源设置两个完整域名,例如:coolify.io,www.coolify.io
  • 为资源添加唯一的中间件。

www -> 非www

bash
# 类似的行已经定义。
traefik.http.routers.<unique_router_name>.rule=Host(`www.coolify.io`) && PathPrefix(`/`)

# 您需要将中间件添加到路由器。
traefik.http.routers.<unique_router_name>.middlewares=example-middleware

# 如果有多个中间件,需要用逗号分隔。
# traefik.http.routers.<unique_router_name>.middlewares=gzip,example-middleware
#
traefik.http.middlewares.example-middleware.redirectregex.regex=^(http|https)://www\.(.+)
traefik.http.middlewares.example-middleware.redirectregex.replacement=${1}://${2}
traefik.http.middlewares.example-middleware.redirectregex.permanent=true

非www -> www

bash
# 类似的行已经定义。
traefik.http.routers.<unique_router_name>.rule=Host(`coolify.io`) && PathPrefix(`/`)

# 您需要将中间件添加到路由器。
traefik.http.routers.<unique_router_name>.middlewares=example-middleware

# 如果有多个中间件,需要用逗号分隔。
# traefik.http.routers.<unique_router_name>.middlewares=gzip,example-middleware
#
traefik.http.middlewares.example-middleware.redirectregex.regex=^(http|https)://(?:www\.)?(.+)
traefik.http.middlewares.example-middleware.redirectregex.replacement=${1}://www.${2}
traefik.http.middlewares.example-middleware.redirectregex.permanent=true

域名 -> 其他域名

bash
traefik.http.middlewares.redirect-otherdomain.redirectregex.regex=^(https?://)?source-domain\.com(.*)
traefik.http.middlewares.redirect-otherdomain.redirectregex.replacement=https://target-domain.com${2}
traefik.http.middlewares.redirect-otherdomain.redirectregex.permanent=true

如果您还需要为目标域名生成SSL证书,另外添加一个路由器条目

bash
traefik.http.routers.redirect-otherdomain.middlewares=redirect-to-https,redirect-otherdomain
traefik.http.routers.redirect-otherdomain.rule=Host(`target-domain.com`) && PathPrefix(`/`)
traefik.http.routers.redirect-otherdomain.entryPoints=https
traefik.http.routers.redirect-otherdomain.tls.certresolver=letsencrypt
traefik.http.routers.redirect-otherdomain.tls=true

基于Docker Compose的应用程序和一键部署服务

  • 您需要为资源设置两个完整域名,例如:coolify.io,www.coolify.io
  • 您只需要将中间件添加到路由器。

www -> 非www

bash
traefik.http.middlewares.example-middleware.redirectregex.regex=^(http|https)://www\.(.+)
traefik.http.middlewares.example-middleware.redirectregex.replacement=${1}://${2}
traefik.http.middlewares.example-middleware.redirectregex.permanent=true

非www -> www

bash
traefik.http.middlewares.example-middleware.redirectregex.regex=^(http|https)://(?:www\.)?(.+)
traefik.http.middlewares.example-middleware.redirectregex.replacement=${1}://www.${2}
traefik.http.middlewares.example-middleware.redirectregex.permanent=true

调试

您可以通过检查Docker目标容器来确认Traefik设置是否已正确应用。

找到您的Docker容器ID

bash
docker ps

检查容器标签

bash
docker inspect <container-id>

您还可以通过运行以下命令检查traefik容器日志

bash
docker logs -f coolify-proxy