通过Traefik代理Dockware容器报500错误及域名修改相关问题咨询
500错误排查与域名修改方案
是否需要修改域名
你当前配置中Traefik的路由规则写死了example.com,满足以下任意一种情况就必须修改域名,否则会直接导致500错误:
- 实际访问站点使用的域名不是
example.com - Shopware系统内部配置的站点域名和
example.com不一致 - 你SSL证书签发的域名不包含
example.com
具体修改操作步骤
1. 更新Docker Compose中的Traefik路由规则
将配置中两处Host(example.com)的example.com替换为你实际使用的域名,示例如下:
# 替换前 - "traefik.http.routers.shopwaretest-http.rule=Host(`example.com`)" - "traefik.http.routers.shopwaretest-https.rule=Host(`example.com`)" # 替换后(假设你的实际域名是shop.mydomain.com) - "traefik.http.routers.shopwaretest-http.rule=Host(`shop.mydomain.com`)" - "traefik.http.routers.shopwaretest-https.rule=Host(`shop.mydomain.com`)"
2. 同步修改Shopware的域名配置
Dockware容器内部的Shopware系统默认绑定了初始化时的域名,需要和Traefik配置保持一致:
- 首次启动容器前,直接在
environment节点新增APP_URL参数,值为你替换后的完整域名:environment: - XDEBUG_ENABLED=0 - PHP_VERSION=8.0 - APP_URL=https://shop.mydomain.com # 和Traefik配置的域名完全一致 - 如果容器已经启动过,执行以下命令更新Shopware内部的域名配置:
docker exec -it shopwaretest bin/console sales-channel:update:domain shop.mydomain.com
3. 生效配置
修改完成后重新启动容器栈即可:
docker compose down && docker compose up -d
其他500错误排查点
如果修改完域名仍有500错误,可优先排查以下问题:
- 注释掉当前配置中
- ./hosts:/etc/hosts这行挂载,本地hosts文件格式错误会导致容器内部解析异常 - 检查Traefik日志确认路由匹配、证书签发是否正常:
docker logs traefik容器名称 - 检查Dockware容器日志确认PHP、服务运行是否正常:
docker logs shopwaretest
内容的提问来源于stack exchange,提问作者Phil
相关产品推荐
相关产品推荐

