问题标签 [google-cloud-cdn]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
233 浏览

google-cloud-cdn - 谷歌 CDN 驱逐过于激进?

我将谷歌 CDN 与谷歌负载均衡器一起使用,它有一些后端服务,每个服务都有不同的谷歌 CDN 设置,如下所示。

问题是,service C从谷歌负载均衡器得到请求,昨天已经请求了哪个 URL 并正确处理。( status 200, with Cache-Control header and Content-Length)

它并不总是发生,例如,在从我们的服务器返回响应之后,谷歌负载均衡器返回响应而不进行查询。但大约一天过去了,他们又开始问了。请注意,我提出了几乎相同的地理位置。

经过一番谷歌搜索后,我已经在 SO 上找到了以下链接,上面说谷歌 CDN 积极驱逐其内容(总共只有 10MB 缓存大小), https://stackoverflow.com/a/54031267/1982282

谷歌 CDN 不保证尊重 max-age。 Google Cloud CDN 忽略超过 3600 的 max-age

但上述问题的原因是,真的是这种激进的驱逐吗?

实际上,我们的服务器仍处于开发阶段,因此没有大量流量,总缓存大小也只有 10MB 左右。但以我个人的感觉,我无法相信谷歌 CDN 会如此努力地驱逐内容(在 1 天内,10MB+ 大小)。

任何人都可以分享您关于谷歌 CDN 驱逐率的经验吗?

问候,

0 投票
0 回答
1031 浏览

google-cloud-platform - 将 Cloud Run 微服务拼接到单个 API 网关中

我将我的服务拆分为 Cloud Run 服务,例如在我拥有的博客应用程序userpost服务comment中。

对于每个服务,我在部署时都会获得一个单独的 http 端点,但我想要的是让 api.mydomain.com 作为网关,通过它们各自的路由( 、 等)访问所有这些/user*端点/post*

是否有标准(即 GCP 管理和无服务器)方式来执行此操作?

我尝试过/想到的事情及其问题:

  • 带有重写的 Firebase 托管 - 这是“建议”的解决方案,但它不是很灵活,而且问题更大,我认为这会导致对每个请求进行双重包装 CDN。如果错了,请纠正我,但 Cloud Run 端点已经使用 CDN,那么您可以快速运行 Firebase 托管。像这样不必要地增加成本和延迟似乎很愚蠢。
  • nginx 在一个不断运行的实例上——工作正常,但不是托管的,也不是无服务器的;需要扩大干预措施
  • Cloud Run 上的 nginx - 这似乎具有高度可变的性能,因为有 (a) 两个可能的冷启动,以及 (b) 再次双重包装 CDN。
  • 直接使用 Cloud LB/CDN - Cloud Run 似乎不支持

有任何想法吗?对我来说,这让 Cloud Run 无法用于微服务。希望有办法解决它。

0 投票
3 回答
171 浏览

google-cloud-platform - 如何查找我的谷歌云存储桶是否启用了 CDN?

我已启用具有“存储旧对象读取器权限”的“ allUsers ”。现在我如何才能找到 CDN 是否处于活动状态?请帮我。谢谢

0 投票
1 回答
308 浏览

go - 带有随机 AuthenticationRequired 的签名 URL 结果

我在 gcloud 中有一个配置了存储桶后端的 CDN,该存储桶是私有的,我将ObjectViewer权限授予 CDN 服务帐户 ( serviceAccount:service-XXXX@cloud-cdn-fill.iam.gserviceaccount.com)

我有一个 API 可以从 CDN 请求文件:

  • 此 API 检查是否允许用户下载请求的文件
  • 使用 CDN URL 计算此文件的签名 URL
  • 使用计算的签名 url 重定向用户

大多数情况下,客户端成功下载文件并接收200,但是当我的客户端(移动应用程序)被重定向到签名 URL 时,我随机出现错误:

生成新的签名 URL 无法解决此问题:错误是在 X 分钟/秒内发送的。

我的 API 回复301并没有触发授权错误。此错误是由 CND HTTP 负载平衡器发送的,带有状态代码401

这是我生成签名 URL 的函数:

0 投票
1 回答
582 浏览

google-cloud-platform - 谷歌云 CDN 后端服务负载均衡器不缓存任何资源

我们需要动态生成图像并使用 CDN 进行缓存。为此,我们配置了一个支持负载均衡器的云 CDN 后端服务。我们正在使用 Nginx 代理服务器。我们在 Google 云 CDN 文档中添加了指定的标头,但不幸的是它没有缓存。

要求:

请求标头:

响应标头:

0 投票
1 回答
254 浏览

google-cloud-platform - Google Cloud Functions 的 CDN - 使用 openapi-functions.yaml 配置端点

按照https://cloud.google.com/endpoints/docs/openapi/get-started-cloud-functions的入门指南将我的云函数放在 CDN 后面。将 ESPv2 Beta 部署到 Cloud Run 并获得预配置的 CloudRun 服务 URL。现在我的openapi-functions.yaml文件碰壁了。当我运行命令时:

我得到错误响应:

我正在使用的openapi-functions.yaml似乎与教程中的示例几乎相同,并且此错误似乎表明 Cloud Functions 端点不是 CloudRun 的有效 URL!我在这里做错了什么?提前感谢您的帮助。

openapi-functions.yaml:

0 投票
2 回答
996 浏览

google-cloud-platform - 如何在 Cloud CDN 后面放置 Google Cloud Run 服务?

我想在 Google Cloud Run 服务前面放置一个 CDN 以缓存一些响应。

现在看来 Cloud CDN 需要一个谷歌负载均衡器,他们不能指向谷歌云运行服务(https://github.com/ahmetb/cloud-run-faq/tree/e7a0fc43d3054456613c09e073db289ddf76dd33#how-can-i-configure -cdn-for-cloud-run-services)。

还有其他方法吗?

0 投票
2 回答
1209 浏览

reactjs - 使用相同的 GCP 负载均衡器在 GCS 存储桶和 GKE 之间进行路由

我一直在四处寻找是否可以将静态 React 应用程序托管在 Google Cloud Storage 存储桶中,并使用 Google Cloud CDN 和单个 Google Cloud Load Balancer 将缓存未命中路由到存储桶,管理证书,并将来自 React 应用程序的内部请求路由到托管在 GKE 中的 API?

是否有可能实现这种架构,或者是否有另一种推荐的方法?

0 投票
1 回答
324 浏览

google-app-engine - 如何将 Google Cloud CDN 用于托管在 Google App Engine 上的静态网站?

我在 Google App Engine 上提供一个超级简单的静态网站。我选择了苏黎世的地点,它在我在欧洲测试过的所有地点都提供相当不错的内容。我在网上进行的速度测试显示欧洲的页面加载速度 <1s。然而,在美国,尤其是西海岸、南美、亚洲和澳大利亚,页面加载时间超过 3 秒,这对我来说是不可接受的。

因此,我想到了使用 Google Cloud CDN。不幸的是,他们的 CDN 似乎需要一些 HTTPS 负载平衡器,我不知道如何设置它。如果 Google 有自己的 CDN 似乎很愚蠢,但这不适用于他们的 App Engine,所以我不得不去 Cloudflare。

0 投票
1 回答
499 浏览

browser-cache - PageSpeed Insights 是否绕过了 Google CDN 缓存?

我们正在使用 Google Cloud Platform 来托管一个 WordPress 网站:

Google Load Balancer with CDN -> Instance Group with single VM -> Nginx + WordPress

从第 1 步(只有带有 WordPress 的虚拟机,没有缓存)到最后一步(使用负载均衡器和 CDN 的整个设置),当我从浏览器和 GTmetrix 进行本地测试时,我可以逐渐看到改进。但 PageSpeed Insights 的改进总是很少。

现在我们为在 GTmetrix 中获得令人印象深刻的98/97 分感到自豪(哇!),但 PSI 仍然显示我们相当平均,特别是在移动设备上(范围为 45-55)。

问题:我们关心谷歌中的页面排名,所以我们也想让 PSI 高兴。另外......我们的客户不会明白我们确实做出了改进,而 PSI 仍然显示该分数。

我正在挖掘并发现有关 PSI 的一些奇怪的事情:

  • 当我们cache-control在 nginx 中进行调整时,它被本地浏览器和 GTmetrix 正确检测到,但是在 PSI 中使用有效缓存策略服务静态资产部分显示了几天的旧值。
  • 主页有一个以 3 种格式(mp4、webm、ogv)托管的背景视频。客户端应该只请求其中一个(我的浏览器和 GTmetrix 会),但 PSI 实际上请求其中的 3 个。我可以在避免巨大的网络负载部分看到它们。
  • 当客户端请求我们的主页时,只有GET /请求到达我们的后端服务器(这是预期的行为),其余的静态资产由 CDN 提供。但是当从 PSI 进行测试时,所有请求都会到达我们的后端服务器。我可以在 nginx 访问日志中看到它们。

所以...这 3 点让我们在 PSI 中获得更差的分数(点 1 在我们改变后的几天后突然自行修复cache-control),但据我所知,它们都不应该发生。还有什么我想念的吗?

提前感谢那些可以对此有所了解的人。