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

Windows Docker本地虚拟主机环境下GTM Server-Side运行异常求助

GTM Server-Side部署(Windows Docker环境)连接预览服务器失败排查

问题场景

在Windows环境的Docker中测试GTM Server-Side部署,已完成WAMP Apache虚拟主机配置、SSL代理设置、Docker容器启动,两个站点可正常访问且/healthz返回正常,但调试时控制台报错:

An exception was thrown while proxying preview request. Make sure the PREVIEW_SERVER_URL is set correctly and the preview server is healthy. Message: connect ECONNREFUSED 127.0.0.1:443

核心问题定位

报错显示live容器尝试连接127.0.0.1:443失败,本质是Docker容器内的127.0.0.1指向容器自身,而非宿主机的Apache服务,导致无法访问宿主机上的预览代理。

具体修复步骤

1. 修正容器访问宿主机的地址

Windows Docker环境中,容器要访问宿主机服务,不能用127.0.0.1,需用以下两种方式之一:

  • 用Docker专属的宿主机映射地址host.docker.internal(Windows/macOS通用)
  • 用宿主机的实际局域网IP(如192.168.x.x)

修改live容器的启动命令,更新PREVIEW_SERVER_URL:

# 方式1:用host.docker.internal
docker run -d --name gtm-live -p 8080:8080 -e CONTAINER_CONFIG=aWQ -e PREVIEW_SERVER_URL=https://host.docker.internal:443 -e PORT=8080 gcr.io/cloud-tagging-10302018/gtm-cloud-image:stable

# 方式2:用宿主机局域网IP
docker run -d --name gtm-live -p 8080:8080 -e CONTAINER_CONFIG=aWQ -e PREVIEW_SERVER_URL=https://192.168.x.x:443 -e PORT=8080 gcr.io/cloud-tagging-10302018/gtm-cloud-image:stable

2. 优化Apache虚拟主机配置

原配置中_default_:443可能导致容器访问时无法匹配正确虚拟主机,建议替换为*:443并确保ServerName精准:

<VirtualHost *:443>
    ServerName ssgtm.dev

    ProxyPreserveHost On
    ProxyRequests Off

    ProxyPass / http://localhost:8080/
    ProxyPassReverse / http://localhost:8080/

    SSLEngine on
    SSLCertificateFile "C:/ssls/ssgtm.dev.crt"
    SSLCertificateKeyFile "C:/ssls/ssgtm.dev.key"
</VirtualHost>

<VirtualHost *:443>
    ServerName preview.ssgtm.dev

    ProxyPreserveHost On
    ProxyRequests Off

    ProxyPass / http://localhost:8079/
    ProxyPassReverse / http://localhost:8079/

    SSLEngine on
    SSLCertificateFile "C:/ssls/preview.ssgtm.dev.crt"
    SSLCertificateKeyFile "C:/ssls/preview.ssgtm.dev.key"
</VirtualHost>

修改后重启Apache服务,确保能根据请求Host头正确转发。

3. 验证容器网络连通性

进入live容器,测试能否访问宿主机的预览服务:

docker exec -it gtm-live curl -v https://host.docker.internal:443/healthz
  • 返回200 OK说明网络正常;
  • 若报错,检查宿主机防火墙是否开放443端口,或临时加--insecure跳过SSL证书验证(测试环境可用)。

4. 核对GTM控制台配置

在GTM Server-Side容器设置中,确保:

  • 预览服务器URL与PREVIEW_SERVER_URL一致;
  • ssgtm.dev和preview.ssgtm.dev已添加到允许的域名列表。

内容的提问来源于stack exchange,提问作者Sajjad Hossain Sagor

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 22:25:28