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

Traefik反向代理Docker部署的多WordPress实例出现重定向次数过多问题

重定向过多问题修复方案

  • 核心原因:Traefik作为反向代理处理了HTTPS请求后,转发给WordPress容器的是HTTP协议请求,WordPress无法识别外层HTTPS环境,会持续触发HTTPS跳转逻辑,形成重定向循环。
  • 修复步骤:
    1. 在WordPress容器的docker-compose.yml配置中,新增请求头传递的中间件配置,确保反向代理的协议信息正确传递给上游服务:
      services:
        你的wordpress服务名:
          # 其余原有配置保持不变
          labels:
            # 其余原有traefik配置保持不变
            - "traefik.http.middlewares.wp-headers.headers.customRequestHeaders.X-Forwarded-Proto=https"
            - "traefik.http.routers.你的wp路由名.middlewares=wp-headers@docker"
      
    2. 进入WordPress容器的站点根目录,修改wp-config.php配置文件,新增如下配置强制识别HTTPS环境:
      if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https') {
          $_SERVER['HTTPS'] = 'on';
          $_SERVER['SERVER_PORT'] = 443;
      }
      // 替换为你的实际站点域名
      define('WP_HOME', 'https://你的域名');
      define('WP_SITEURL', 'https://你的域名');
      
    3. 检查是否存在重复跳转规则:不要同时在Traefik和WordPress两端配置HTTP强制跳HTTPS,仅保留Traefik侧的自动跳转配置即可;如果WordPress安装了重定向类插件,可临时禁用测试。
    4. 确认Traefik路由配置无冲突:每个站点的HTTPS路由需正确关联443端口的entrypoint,证书解析配置无误,没有出现同域名同时匹配HTTP和HTTPS路由的情况。

多WordPress实例部署注意事项

  • 每个WordPress实例对应独立的数据库服务,需分别配置不同的数据库名、用户名、密码,避免数据冲突。
  • 每个实例的持久化存储卷挂载路径需做区分,避免不同站点的文件互相覆盖。
  • 每个实例的Traefik路由规则中的Host匹配值需对应各自的域名,确保流量能正确转发到对应容器。

内容的提问来源于stack exchange,提问作者Ranhousecode

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 04:36:08