问题标签 [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 回答
217 浏览

javascript - 通过 CDN 提供 JS 小部件

我需要做这件事,我必须在 vanilla js 中制作一个小部件(可交互)并通过 CDN 提供它。对于服务,我想到了 Google 的 Cloud CDN。最终目标是一个任何人都可以通过使用脚本标签来使用的模块化小部件。以前有人做过吗?你是怎么处理的?

0 投票
1 回答
233 浏览

caching - Google Cloud CDN 不会缓存 https 页面,因为它们具有 Vary 标头 x-forwarded-proto

看来我不能在 https 请求中将 Google Cloud CDN 与 GKE Ingress 一起使用,因为 Ingress 控制器添加了一个 Vary http 标头:x-forwarded-proto,CDN 不会缓存(请参阅https://cloud.google.com /cdn/docs/caching#non-cacheable_content)。我认为添加标头是正确的,因为它告诉提供内容的应用程序它被请求为 https。但我不确定为什么 CDN 不会缓存带有此标头的页面。

我错过了什么还是有解决方法?

当页面被请求为 http 并被缓存时的标头示例

当页面请求为 http且未缓存时的标头示例:

非常感谢,山姆

0 投票
1 回答
1835 浏览

google-compute-engine - 实例组:资源“us-instance-group-1”超过限制“QUOTA_FOR_INSTANCES”。限制:8.0

我在 Asia-Southeast-b 上使用带有 2vCPU 10GM 的 GCE 作为我的网站我正在尝试测试 CDN 和 LB,所以在美国创建实例组的过程中途,但无论如何它都会给我一个错误。

实例组:资源“us-instance-group-1”超过限制“QUOTA_FOR_INSTANCES”。限制:8.0

https://prnt.sc/tzyyrk

来自https://cloud.google.com/compute/quotas的这份文档让我认为这可能是由于我选择的区域,所以我尝试选择不同区域的所有多区域甚至单个区域,但没有无论我如何选择它,都不允许我创建一个(我不能说我尝试了所有不同的组合,但几乎所有)。

我选择了最低规格的Instance模板 N1-standard with CentOS7 + 20G standard disk。

在这个项目下,我有以下 4 个与此相关的服务帐户。

Compute Engine 默认服务帐号、Google API 服务代理、Compute Engine 服务代理、Myself as Owner

我去了 IAM & Admin > Quotas > All green check

  1. 是因为我用免费的 300 积分来构建它吗?
  2. 如何检查我应该在哪个可用区域上创建实例组?
  3. 可能是什么原因?我做错了什么?

谢谢

0 投票
2 回答
1019 浏览

google-cloud-platform - 如何使用 GCP 设计可扩展的视频流架构?

我有一个视频流应用程序,它可以从谷歌存储桶流式传输视频。驻留在存储桶上的所有文件都不公开。每次当用户从前端单击视频时,我都会使用 API 生成签名 URL 并加载到HTML5视频播放器中。

问题

  • 我看看文件大小是否超过 100 MB,在前端加载视频大约需要 30-40 秒。

当我用谷歌搜索解决这个问题时,有些文章说使用云 CDN 和存储桶然后缓存文件。据我所知,要缓存文件,该文件必须公开可用。我无法公开文件。

所以我担心的是,有什么方法可以使它可扩展/减少初始时间?

0 投票
1 回答
83 浏览

google-cloud-cdn - 内部(内网)网站的云 CDN

我想使用 CDN 缓存当前托管在 GCP 上的 Intranet 应用程序的静态资产。但是,此站点仅可私下使用,没有外部访问权限。我知道对于 CDN,我需要有外部 HTTP 负载平衡器,并且由于外部负载平衡器只能用于具有外部 IP 的外部站点,我假设我真的不能使用任何类型的 CDN?所以我最好的选择是将其托管在 Google Cloud Storage 存储桶上?

0 投票
0 回答
321 浏览

google-cloud-platform - 如何使用云 CDN、存储桶和 LB 生成自定义签名 URL 和签名 cookie?

自从我一直致力于生成自定义 URL 以访问cloud storage私人内容以来,已经有两天了。

  • 我创建了 CDN 和负载均衡器来访问存储桶。
  • 我有一个 CDN IP 地址来访问这些文件。

当我以公共身份授予文件时storage bucket,我可以使用 CDN IP 进行访问。例子: https://<CDN IP Address>/filename.pdf

由于所有文件都是机密文件,因此我无法将文件设为公开storage bucket,因此我想使用custom signed URLsigned cookies生成自定义签名 URL。我正在关注htafoya生成自定义 URL链接的答案。这样做时,我对这URL部分感到困惑。应该使用哪个 URL?是它https://<CDN IP Address>/filename.pdf并跟着?Expires=1600316057&KeyName=demo-key&Signature=jxkWfkEZ_Jl6OKP83Cf13U-gy-e403使用上述 URL时出现错误。有人知道如何使用生成自定义签名 URLnode js吗?

更新

  1. 我可以通过重新创建所有内容来修复它。
  2. 它仅适用于一个文件。尝试访问剩余文件时,浏览器会抛出403.

更新 1

我发现了为什么它不起作用的问题:

  1. 如果任何文件名包含空格,CDN 将引发403权限问题错误。

示例:工作:https://<CDN IP Address>/filename.pdf?Expires=1600316057&KeyName=demo-key&Signature=jxkWfkEZ_Jl6OKP83Cf13U-gy-e

不工作:https://<CDN IP Address>/network architecture.pdf?Expires=1600316057&KeyName=demo-key&Signature=jxkWfkEZ_Jl6OKP83Cf13U-gy-e

有谁知道如何解决这个问题?

0 投票
1 回答
180 浏览

wordpress - 使用 Wordpress 使 Google Cloud CDN 缓存失效的问题

经过几天的研究和阅读谷歌云文档,同时了解谷歌云 CDN 缓存。最后,我能够使用 Wordpress 设置 Google Cloud CDN。正确设置缓存标头并将 Vary 标头设置为 Google CDN 要求,并为请求实现 Etags 和 Last modified 标头。Wordpress 网站的缓存很好,但当我发现我在后端 Wordpress 中更新的任何内容都不会实时更改到 Google CDN 缓存时,我感到很头疼。所以,问题是: -


问题:- 如果我在 wordpress 上更新帖子,它仍然会显示缓存版本,直到过期/缓存控制:达到最大年龄。这使得没有使用 Last Modified 和 Etags。为什么它不尊重后端状态代码 304 并在页面更改时获取新副本。

我想要什么:- Google CDN 使用后端检查请求的上次修改和 ETag,如果更改,则获取新副本,否则显示缓存版本。


注意:-在我发现的字节范围请求 中,它在检查请求的 Etag 和 Last Modified 之前使用字节范围。如果是真的?如果是,我必须进行哪些更改才能使其正常工作?

请帮助我解决问题,所以如果我进行更改,它会获取一个新副本。请检查标题,如果有任何问题,请告诉我下面给出的网站。谢谢

网站

0 投票
1 回答
35 浏览

google-cloud-cdn - Google CDN cache failing

Currently deploying CDN using vm instances + HTTPS LB, all right was set, im checking if works correclty, when make some test to CDN Url's from browser or cURL appear content was cached, but when another user request same URL from different location but using same edge cache it doesnt found and create another new, someone having same problem ?:

sample:

URL: https://www.sample.com/url.htm

  • User1/Location1(Dallas) ------------------------> DAL (not found first time and for second or third try, generate CachedID DAL-XXXXXX1)

after that User1 create cache another user2 request same URL but from diferrent location but using same edge cache URL: https://www.sample.com/url.htm

  • User2/Location2(McAllen) ------------------------> DAL (not found generate Cached ID DAL-XXXXXX2)

Why if edge pop already have cached this URL is not serving and generate new cache fills for same URL?

Note:im not using query on any URL.

0 投票
2 回答
208 浏览

google-cloud-cdn - 太快了 Google CDN 缓存驱逐或错误

我使用相同的 PC、相同的客户端地址并请求相同的 URL 从缓存中检查 CDN 命中/未命中:

***场景 1 缓存控制 1 天、1 个月、1 年:
-Hour 12:00
user1 未找到请求 URL,缓存已满。
- 12:05 时
user1 请求 URL 找到,缓存 HIT 响应。
- 12:10 时
user1 请求 URL 未找到,缓存已满。

***场景 2(使用相同的互联网网关)缓存控制 1 天、1 个月、1 年
- 小时 12:00
在建筑组织用户 1 请求 URL,未找到 URL,但在第二次请求缓存命中

-Hour 12:01
At the same Building Organization User2 Request the same URL, and voila again Url not found but on second request cache hit

***场景 3(使用相同的互联网网关)缓存控制 1 天、1 个月、1 年
- 小时 12:00 在建筑组织用户 1 使用 Edge 浏览器请求 URL,未找到 URL,但在第二次请求缓存中,同一台 PC 上的同一用户命中, 打开 Chrome 或 Firefox 请求 URL 并再次查看 Url not found 和缓存再次需要填写

即使缓存控制设置为 1 天、1 个月或 1 年,或者使用不同的浏览器,为什么要很快缓存?这是一个错误?

0 投票
1 回答
57 浏览

google-cloud-cdn - 如何在自定义响应头中使用“cdn_cache_id”?

文档中,我看到“cdn_cache_id”可以用作标头值,但在使用它时收到“无效标头值”错误。我尝试使用 Cloud Shell 和 UI 应用它,但它是一样的。谁能确认这里到底发生了什么?

cdn_cache_id 错误