You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Traefik+Docker Swarm+Cloudflare部署后域名404问题求助

排查Traefik路由404问题的步骤

1. 确认域名解析与Cloudflare配置

  • 检查Cloudflare中uhu.sheralink.com的DNS记录:确保A/AAAA记录指向Swarm集群的公网IP,代理状态(橙色云朵)设置合理——若Traefik直接暴露公网,可暂时切换为灰色(关闭代理)测试;若保留代理,需将SSL/TLS模式设为Flexible或Full,且与Traefik的SSL配置匹配。
  • 本地执行nslookup uhu.sheralink.com或dig uhu.sheralink.com,验证解析到的IP是否正确。

2. 核对whoami服务的Traefik标签配置

  • 检查服务的Docker Stack/Compose文件,确保标签无语法错误:
    • 必须包含traefik.http.routers.whoami.rule=Host(uhu.sheralink.com),注意域名拼写、括号与引号的正确使用。
    • 确认traefik.http.services.whoami.loadbalancer.server.port指定了正确的容器端口(whoami默认是80)。
    • 需添加traefik.enable=true标签,且服务与Traefik加入同一个Swarm overlay网络(而非默认bridge网络)。
  • 登录Traefik仪表盘,在HTTP Routers和HTTP Services页面,确认uhu.sheralink.com对应的路由、服务已存在且状态为enabled。

3. 验证Traefik静态配置

  • 确保traefik.yml或启动参数中已启用Swarm provider:
    providers:
      docker:
        swarmMode: true
        exposedByDefault: false # 仅启用带traefik.enable=true的服务,避免冗余
    
  • 检查Traefik的端口发布配置:确认80/443端口已正确发布到主机,且主机防火墙未拦截这些端口。

4. 检查Swarm网络连通性

  • 执行docker service inspect whoami,确认服务与Traefik加入的是同一个overlay网络——Swarm跨节点服务通信依赖overlay网络,bridge网络无法满足。

5. 调试请求细节

  • 开启并查看Traefik访问日志,确认请求的Host头是否匹配、是否命中路由:
    docker exec -it <traefik-container-id> tail -f /var/log/traefik/access.log
    
  • 在whoami容器内抓包,验证是否收到Traefik转发的请求:
    docker exec -it <whoami-container-id> tcpdump -i any port 80
    

6. 排查Cloudflare规则干扰

  • 检查Cloudflare的Page Rules、WAF规则,确认没有拦截uhu.sheralink.com的请求。
  • 若使用SSL证书,在Traefik仪表盘Certificates页面确认证书已成功颁发(无论是Cloudflare证书还是Let's Encrypt证书)。

内容的提问来源于stack exchange,提问作者Jais Anasrulloh Ja'fari

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 13:10:28