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

Shopware 6.6配置Caddy反向代理后登录后台遇混合内容错误

解决方案:无需将8080端口改为HTTPS,调整Caddy配置+Shopware设置即可解决

问题根源

Mixed Content错误是因为Shopware后台输出的apiContext仍使用HTTP协议,但用户通过HTTPS访问后台。这是因为Shopware运行在8080端口的HTTP服务上,默认会用HTTP生成API地址,未识别到前端通过反向代理使用的HTTPS协议。

具体修复步骤

1. 完善Caddy反向代理配置

确保Caddy正确传递HTTPS相关请求头,让Shopware识别当前协议。修改mydomian.com块的配置:

mydomian.com {
    reverse_proxy :8080 {
        header_up Host {host}
        header_up X-Forwarded-Proto {scheme}
        header_up X-Forwarded-For {remote_host}
        header_up X-Forwarded-Port {server_port}
    }
}
  • {scheme}自动填充当前请求的HTTPS协议,比硬写https更灵活
  • 添加X-Forwarded-For和X-Forwarded-Port帮助Shopware获取完整请求上下文

2. 配置Shopware信任代理并强制HTTPS

修改Shopware根目录下的.env文件,添加/更新以下配置:

# 设置信任的代理IP(本地Caddy可填127.0.0.1,::1)
TRUSTED_PROXIES=127.0.0.1,::1
# 设置Shopware外部访问地址(HTTPS)
APP_URL=https://mydomian.com
# 强制后台使用HTTPS
ADMIN_URL=https://mydomian.com/admin

3. 确保Shopware正确处理代理头

编辑Shopware的config/packages/framework.yaml文件,添加代理信任配置:

framework:
    trusted_proxies: '%env(TRUSTED_PROXIES)%'
    trusted_headers:
        - x-forwarded-for
        - x-forwarded-host
        - x-forwarded-proto
        - x-forwarded-port

4. 清除Shopware缓存

执行命令清除缓存,让配置生效:

bin/console cache:clear
bin/console cache:warmup

验证

完成以上步骤后,重新访问后台,查看生成的apiContext中scheme应变为https,schemeAndHttpHost变为https://mydomian.com,Mixed Content错误即可解决。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 19:37:14