我正在设置一个 Google Cloud Load Balancer,其外部后端指向 Wasabi S3 存储桶。目标是通过负载均衡器和 Cloud CDN 提供来自 Wasabi 存储桶的视频文件。但是,我始终收到 502 Bad Gateway 错误。日志指定:“backend_connection_close_before_data_sent_to_client”。
设置详情:
我是使用云的新手,因此按照 Google 文档我确保完成了这些步骤:
s3.us-west-1.wasabisys.com
作为 FQDN,端口为 443第一个链接指南创建的“新”服务(名为
user-clips
)。 我也确保在自定义请求标头中添加 Host: s3.us-west-1.wasabisys.com
。Host: *, Paths: /all-users-clip-storage-wasabi/*, Backend: user-clips
。问题: 当我尝试通过 CDN 向存储桶发出请求时,我会收到不同的错误,具体取决于我尝试访问它的方式。当我使用谷歌的例子时:
time wget "https://my_load_balancer_ip/all-users-clip-storage-wasabi/all-users-projects/exampleUser/project-name-placeholder/video_file.mp4
我收到以下错误:
The certificate's owner does not match hostname ‘my_load_balancer_ip’
当我用我的域名替换 IP 时(带或不带 www):
Resolving www.mydomain.com (www.mydomain.com)... {my_load_balancer_ip}
Connecting to www.mydomain.com (www.mydomain.com)|{my_load_balancer_ip}|:443... connected.
HTTP request sent, awaiting response... 502 Bad Gateway
2024-08-08 23:50:46 ERROR 502: Bad Gateway.
real 0m0.342s
user 0m0.017s
sys 0m0.005s
这是失败请求的日志:
statusDetails: "backend_connection_closed_before_data_sent_to_client"
我从其他来源了解到,问题在于负载均衡器正在将流量发送到另一个实体,超时时间很短。但正如您从日志中看到的,对请求的答复几乎是即时的(不到 1 秒)。
我已经尝试过:
问题:
如果我可以提供更多背景信息,请告诉我。 任何有关解决此问题的指导将不胜感激。 谢谢!!
解决方案是将 NEG 切换到端口 80,因为它是 http 的默认端口 https://cloud.google.com/cdn/docs/external-backends-internet-neg-overview#specifying_an_external_backend