问题标签 [fastly]

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 投票
2 回答
945 浏览

node.js - 如何使用 Hapijs 正确提供静态资产

我试图快速指向我的 heroku 实例,该实例正在运行 hapijs 并从/assets/. 我有一个如下所示的路线设置:

以下是每个请求发回的标头:

我如何不对来自此端点的响应设置 cookie 以及为什么cache-control标头设置must-revalidateprivate. 不应该公开吗?

0 投票
1 回答
680 浏览

bash - 通过使用 curl 或 wget 的 API 调用从 Fastly CDN 中清除 URL

我使用 bash 脚本来部署一个使用 Fastly 作为 CDN 的静态网页。/example.html部署后,我想通过 bash 脚本中的 API 进行清除/example.html。我知道有一个很好的 Ruby gem,但我想使用bash 脚本curlwget在 bash 脚本中进行。

如何通过 Fastly API 使用curl或清除给定的 URL wget

0 投票
1 回答
166 浏览

heroku - 快速 CDN 上的缓存内容过期太频繁

我在 Heroku 应用程序前使用 Fastly 作为 CDN,并且看到许多我希望缓存的请求通过。

An example of this behavior is two requests to the URL: https://nuu-acceptance-herokuapp-com.global.ssl.fastly.net/attachments/f092ff0398b3bace19fae21b17a22320c3da5428/store/fit/240/160/28515a2fa2e47b59f13b2044ea5b9a7c8c9587ceca7d7dfadb28f08730f7/file.jpg . 以下是请求的两个响应,相隔 15 分钟:

两者都是缓存未命中,即使我希望此内容被缓存一年。似乎同一个 Fastly 集群也处理了该请求。谁能指出我可能做错了什么?我在 Fastly 提供的许多文件中看到了这种行为 - fastly 似乎间歇性地提供文件,但缓存未命中的频率比我预期的要高得多。

我将不胜感激任何人都可以给我的任何帮助 - 谢谢!

0 投票
1 回答
70 浏览

ruby - 正则表达式匹配组回顾

我试图从字符串中提取相同的数据(但在不同的“块”中多次。用例是在 Fluentd 中解析来自 Fastly 的 Syslog 消息。

我有这个日志行:

2015-08-27T12:36:58Z cache-foo1234 Name[123456]: 4.151.22.16 "-" "-" POST /api/v1/foo/61ea23fb-53fb-4364-a892-349fdf5f6dca/event?release_type=store&version=2%2E0%2E1&os=ios&device_os_version=8%2E4&device_type=iphone 304 MISS BC942858-64FA-4101-BAE1-19272490697F iPhone 5S

到目前为止,这个正则表达式(Ruby Regex):

^(?<time>[^ ]*) (?<fastly_server>[^ ]*) (?<log_name>[^ ]*) (?<host>[^ ]*) (?<na>[^ ]*) (?<na2>[^ ]*) (?<http_method>[^ ]*) (?<http_request>[^ ]*) (?<http_status>[^ ]*) (?<cache_status>[^ ]*) (?<uuid>[^ ]*) *(?<device_model>.*)$

这给了我:

  • time2015-08-27T12:36:58Z
  • fastly_server 缓存-foo1234
  • log_name 姓名[123456]:
  • host 4.151.22.16
  • http_method邮政
  • http_request /api/v1/foo/61ea23fb-53fb-4364-a892-349fdf5f6dca/event?release_type=store&version=2%2E0%2E1&os=ios&device_os_version=8%2E4&device_type=iphone
  • http_status304
  • cache_status 错过
  • uuid BC942858-64FA-4101-BAE1-19272490697F
  • device_model iPhone 5S

这是完美的,但我怎么能回去提取即。61ea23fb-53fb-4364-a892-349fdf5f6dcaevent以及device_os_version来自具有相同正则表达式的相同字符串的值?

0 投票
2 回答
266 浏览

node.js - 新代码推送到heroku时是否会快速自动清除?

我一直在将 Fastly CDN 用于图像等一堆静态资产,我也想将它用于我的 javascript 和 css,但我担心如果我推送新代码它不会更新并且这会导致错误。

我知道我可以设置一个系统来自动清除这些东西,但我宁愿不必这样做。基于一两个测试,我感觉 heroku 检测到静态文件更改并快速清除它们,但我没有看到任何地方说我可以依赖它。有人确定吗?

0 投票
1 回答
81 浏览

php - 添加 Fastly CDN 会导致在 Yii 中重定向到错误的主机。又名:为什么我的带有自定义域的 Yii 应用程序重定向到 app.herokuapp.com?

我将 Fastly CDN 添加到我的站点,现在当我尝试登录管理部分时,它将重定向到 site.herokuapp.com/site/login 而不是 www.site.com/site/login。我想这是因为 Fastly 正在请求后端的页面HOST: site.herokuapp.com。Yii 中是否有设置来更改生产中的主机名,以便重定向到正确的域?我尝试在文档中搜索“域”或“主机”,但找不到任何相关设置。这些是我能找到的最接近的文档。

http://www.yiiframework.com/doc-2.0/guide-security-authorization.html

http://www.yiiframework.com/doc-2.0/yii-web-user.html#loginRequired()-detail

http://www.yiiframework.com/doc-2.0/yii-web-user.html# $loginUrl-detail

0 投票
2 回答
1474 浏览

varnish - Varnish Hashtwo/Xkey 和 Fastly 的“代理键”一样吗?

我目前正在决定是管理我自己的 Varnish 服务器还是使用像 Fastly 这样的托管服务。这里最重要的决策因素之一是有效的基于标签的缓存失效,因为我计划将 Varnish 放在我们的 API 前面,并且我们需要经常发出使许多相关页面失效的清除请求。

Fastly 提供了代理键,而 Varnish 似乎提供了一个单独的模块,该模块有多个名称,包括 Hashtwo、Hashninja 和 XKey。这些功能似乎是相同的。它们实际上是否相同,或者这两个功能之间是否存在一些关键的技术或效率差异,这在有关它们的博客文章中并不清楚?

0 投票
1 回答
892 浏览

varnish - Fastly 与我自己托管的 Varnish

使用 Fastly 与简单地拥有我自己的自托管 Varnish 有什么好处?Fastly 是否提供了常规 Varnish 所没有的其他好处和功能,或者仅仅是 Fastly 以与托管和管理 RabbitMQ 的 CloudAMQP 相同的方式管理 Varnish?

0 投票
0 回答
121 浏览

ruby-on-rails - 快速缓存失效 fast-rails 和友好的 ID

我正在努力解决 Fastly 和我正在使用的 Rails 应用程序上的缓存失效问题。我正在使用 fastly-rails gem 并确认 CNAME 设置正确。问题本质上是这样的:

当缓存中没有记录时,Fastly 会缓存并正确提供页面。资源代理键是在操作前使用快速轨道设置的...

从那里,页面被缓存,下一次访问由 Fastly 服务器提供。现在,在我的 active-admin 控制器操作中,在进行任何更新后,我调用了使缓存中的记录无效:

这最终最终会使 Fastly 的记录失效,但是,当我访问 URL /schools/:resource_slug 时,我仍然会收到 Fastly 的陈旧内容,但如果我访问 /schools/:id,我会从应用程序中正确获得服务,然后Fastly 服务器提供第二次访问。

有什么想法吗?有人有类似的问题吗?

0 投票
1 回答
60 浏览

amazon-web-services - 如何错开清除多个级联 CDN 以确保完全清除?

我使用 Amazon S3 存储桶、云缓存和快速缓存。结合起来,它们可以非常快速地提供您要求的任何形状、大小或其他转换的图像。但是,它们以不同的速率传播清除请求。

这是级联安排:

  • 当请求图像时,Fastly 会尝试从其缓存中提供该图像。
  • 如果图像不存在,Fastly 会向 Cloudinary 请求该图像。
  • Cloudinary 尝试从其缓存中提供图像服务。
  • 如果图像不存在,Cloudinary 会检查请求的图像是否具有相关的转换参数。
  • 找到转换参数后,Cloudinary 尝试在其缓存中找到图像的未转换版本以应用转换。
  • 如果未转换的图像不存在,Cloudinary 将从 S3 存储桶请求它。
  • Cloudinary 然后应用转换并缓存原始版本和转换后的版本。
  • Cloudinary 将转换后的图像提供给 Fastly。
  • 快速缓存转换后的图像并提供服务。

我想从我的所有服务中完全删除一个图像和该图像的所有转换版本(衍生物)。Cloudinary 需要一个小时将 DELETE 请求传播到其所有服务器。

我看到最好先在 S3 中删除,然后 Cloudinary,最后快速清除。但是,如何最好地将清除呼叫延迟一个小时?在这种情况下,从编程上讲,最佳实践是什么?