问题标签 [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.
varnish - 设置 cookie 时指定过期日期
我想在 VCL 中设置 cookie 时指定过期日期。我目前有这样的事情:
我知道我将不得不添加如下内容:
Varnish 中是否有一个内置函数可以让我动态地将到期日期设置为将来的任何内容?我一直在看他们的文档,但到目前为止还没有运气。
非常感谢您提前。
-天使
iis - Fastly CDN - 不缓存页面的特定部分
我正在阅读 Fastly 关于如何缓存页面或使用条件不缓存特定页面的指南。我正在处理的站点在站点的所有页面上都存在一些不需要缓存的动态元素。
Fastly 指南提到传递特定的 HTTP 标头或使用条件来缓存页面,这对于整页是有意义的。但是,我找不到关于如何告诉系统在缓存页面的其余部分时不缓存给定页面的部分的明确答案。
任何人都有我将如何做到这一点的例子,理想情况下使用 IIS / C#?
macos - 什么会导致所有已安装的 OSX 浏览器(Firefox 除外)出现 SSL 证书错误?
每次尝试连接到 Wired.com 都会遇到证书错误。
我检查了通常的嫌疑人,甚至做了一些可能与此无关的事情。尝试过的浏览器
- 已验证没有 Chrome 扩展干扰(隐身,没有批准的隐身扩展)
- 与 Safari 相同。
- 刷新的 DNS
- 重新启动
- 时间设置 obv 正确
我开始偏执地认为有什么东西在劫持我的连接,但我打开和连接的唯一活动端口是……嗯,应该是打开的。然后它与 Firefox 一起工作的事实就更奇怪了。Firefox 是我的代理浏览器,但它可以通过不带代理的代理运行。
这是最近升级的 Sierra 机器。我不是一个狂热的有线读者,所以我不能告诉你以前是否发生过这种情况,但我可以说我这里还有 4 台其他 mac 测试机,它们都没有遇到同样的问题。
Sierra vs Capitan 没有区别。现在这是一个为期 2 周的问题。有线似乎是字面上唯一受影响的网站。在这一点上,它比其他任何事情都更让人好奇,因为它似乎是与这台机器隔离的东西。
另外,我认为我们可以排除 CDN 问题。因为我所有的其他机器都是从同一个 wanIP 连接的。
伙计,对于更多内部结构的任何建议,我都可以深入研究并深入了解这一点,非常感谢。因为我已经将自己降级为键盘头粉碎。
firebase - firebase 存储桶和 Fastly CDN 集成
为了让我能够快速使用 firebase 存储,我必须在每个图像和存储桶上添加以下权限:实体:用户,名称:AllUsers,访问:读者。有没有办法避免这种乏味且不可扩展的方法,因为它是所有用户上传的媒体?
我的 Firebase 存储安全性如下所示:
我很快收到的错误是:Anonymous users does not have storage.objects.list access to bucket
如果我尝试直接访问图像,我会收到错误:Anonymous users does not have storage.objects.get access to object
我在哪里允许匿名用户具有阅读能力?我假设设置允许读取正是这样做的。
cdn - 快速 CDN 按需推送
要求
一旦文件由某个工作人员或外部上传监控服务发布,我想将文件传播到所有快速 POP。
谐振
如果我的内容通过多个 POP 传播,那么每个新请求都会向我的服务发起请求,而不是在为每个 POP 传输内容后传播文件。
例如
如果我使用的是 S3,那么我将创建一个 Lambda 函数,以便在上传后直接将文件发布到 CDN。
我正在考虑使用 API 或 VCL(或两者),但我只是无法理解术语。
load-balancing - 修改响应正文和服务片段
我们有一个通过 CDN 提供的 Web 应用程序,我想将其转换为 SPA/PWA,并且需要提供没有页眉页脚的页面(仅限片段)
为了实现这一点,它需要去除一些动态部分..或预定义点 ( <!--strip-start-->
)
问题是:通过清漆或任何其他解决方案对响应主体进行后处理是否有意义?
是否应该在负载均衡器 (F5) 上完成?
应该使用哪个库?
它的扩展性如何?有哪些已知问题?
varnish - Varnish:如果响应为 404,则重写 URL
我很好奇如果响应是 404,在 Varnish 2.1.5 中是否有办法重写 URL?
例如。我想提取一个 URL,它可能存在也可能不存在。如果 URL 不存在,我想重写 URL 并尝试使用新的 URL。
我是 Varnish 的新手,并不完全了解请求的生命周期(如果有人知道有文章解释这一点,请分享)。
我已经尝试设置一些变量和请求标头,并进行检查,res.status
但它们似乎在生命周期中的某个地方丢失了,并且无论如何页面 404:
该用例用于翻译网站。例子
Website.com/french/page 可能存在也可能不存在 如果 /French/page 以 404 响应然后尝试 /page 如果 /page 不存在 那么 404
varnish - 在 url /page/b Varnish 上显示 /page/a 的内容
在某些情况下,我想设置 Varnish 2.1.5 规则以显示来自另一个页面的内容,但保持原始 URL 不变。
例如,当用户请求时/page/a
,将显示他/她/page/b
,但仍会/page/a
在浏览器中看到 URL。
这个特定的用例我需要它来优雅地处理翻译页面上的 404 错误。我不确定如何将请求发送回vcl_recv
据我了解,生命周期流程和当前逻辑如下所示:
我假设,而不是set obj.http.Location "https://site/page/a";
,我需要以某种方式将请求发送回vcl_recv
然后使用regsub()
。
我该怎么做呢?
redirect - 用于 301 的快速 vcl 将混合大小写路径重定向到小写
自迁移以来,我的应用程序具有仍然链接到的混合大小写路径,但这些路径应该 301 重定向到所有小写路径。但是,出于遗留 api 和 graphql 查询的原因,有些路径仍需要以混合大小写形式存在。
我的问题的一个更详细但仍然简化的版本是:在我的 Fastly 配置中使用自定义 vcl,我如何 301 将所有混合大小写的 url 重定向为小写,但排除/api
and /graphql
?我想我也想免除所有查询字符串和散列被小写。
我对 vcl 的熟悉程度非常低,肯定会欣赏一些例子!
更新:到目前为止,我有以下内容,但我对此并没有太大的信心:
varnish - 快速和/或通用清漆子程序请求流程
所以快速使用 varnish 2.1.5 的修改版本
它们不提供子程序请求流程的图表,但 varnish 提供(见下文)。
现在,根据下图,只有在执行withinvcl_hash
时才会输入。但根据 Fastly 的一位工程师的说法……lookup
vcl_recv
vcl_hash
几乎在所有情况下都会执行(除非你restart
在vcl_recv
)
那么它是哪一个?有谁知道这是一个 Fastly 特定的实现,还是只是官方清漆图未指明的东西和/或是否有在另一个子例程完成时自动输入vcl_*
的子例程?
还有其他人知道的“陷阱”吗?