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
相关产品推荐
相关产品推荐

