标签: amazon-cloudfront

Cloudfront 限制特定区域

我有一个仅在印度使用的应用程序。我正在使用 Cloudfront 分发来提供资产。我已经实施了版本控制策略,用于更改为构建而更改的资产的名称。

考虑到所有这些,我只需要使 index.html 无效,它负责使用版本化的其他资产。

我正在使用 cloudfront 失效来使 index.html 失效。我观察到,使这个单个文件失效总是需要 2 分钟以上的时间。我理解它是因为它使 42 个边缘位置的文件无效。我不需要将文件放置在 42 边缘位置并使其失效。如果有任何配置仅将文件保留在印度的边缘位置,我想失效会更快。

是否有类似的配置来限制在特定边缘位置复制文件。

amazon-web-services amazon-cloudfront

2
推荐指数
1
解决办法
9759
查看次数

如何配置 amazon cloudfront 以阻止某些 S3 存储桶文件访问?

在 S3 上,我们将所有文件设为私有。用户无法通过 S3 链接加载任何文件。但它们都是通过cloudfront链接公开的。

如何限制对 ./restricted.txt 的访问?(只有使用签名 URL 链接的用户才能通过 cloudfront 链接看到该文件),./not_restricted.txt 必须同时公开。

我是怎么做到的。

我在 s3 上创建了 /public 和 /private 文件夹,分隔了我的私有/公共文件,创建了指向 /public 的 cloudfront 源。因此,/public 文件夹中的所有 S3 文件都是公共的,我可以使用不带公共前缀 /img1.jpg 的链接加载它们,而不是 /public/img1.jpg,因为 cloudfront 将 /public 视为根文件夹。

现在,我位于 /private 或 /public 文件夹上方任何其他位置的所有文件通过 S3 和 cloudfront 链接都是私有的。

但我不知道如何为具有 cloudfront 路径的 /private/restricted.txt 文件创建签名 URL。我可以创建使用 S3 路径的签名 url,但我需要有 cloudfront 链接。

提前致谢。

amazon-s3 amazon-web-services amazon-cloudfront

2
推荐指数
1
解决办法
3972
查看次数

Amazon S3 和 Cloudfront 不会即时进行 gzip

我想使用 Cloudfront 中的新功能,该功能允许使用Accept-Encoding: gzip header即时 gzip 文件。我设置了 CDN 分发,打开“自动压缩对象”,将标头列入白名单:Origin、Accept-Control-Request-Headers 和 Accept-Control-Request-Method(我使用的是 AngularJS,我需要它用于 OPTIONS 方法)。我的 S3 存储桶上没有设置任何 CORS。

正如他们的文档中所述,当我将Accept-Encoding: gzip标头添加到请求中时,它应该开始工作。但是,我仍然收到原始文件。

Response Headers

Accept-Ranges:bytes
Age:65505
Cache-Control:public, max-age=31557600
Connection:keep-alive
Content-Length:408016
Content-Type:text/css
Date:Mon, 21 Mar 2016 16:00:36 GMT
ETag:"5a04faf838d5165f24ebcba54eb5fbac"
Expires:Tue, 21 Mar 2017 21:59:21 GMT
Last-Modified:Mon, 21 Mar 2016 15:59:22 GMT
Server:AmazonS3
Via:1.1 0e6067b46ed4b3e688f898d03e5c1c67.cloudfront.net (CloudFront)
X-Amz-Cf-Id:gKYTTq0cIcUvHTtlrdMig8D1R2ZVdea4EnflV0-IxhtaxgRvLYj6LQ==
X-Cache:Hit from cloudfront

Request Headers

Accept:text/css,*/*;q=0.1
Accept-Encoding:gzip, deflate, sdch
Accept-Language:pl,en-US;q=0.8,en;q=0.6
Cache-Control:max-age=0
Connection:keep-alive
Host: XXX.cloudfront.net
Referer: XXX
User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/537.36 (KHTML, like Gecko) …
Run Code Online (Sandbox Code Playgroud)

caching ruby-on-rails amazon-s3 amazon-web-services amazon-cloudfront

2
推荐指数
1
解决办法
1445
查看次数

如何访问cloudfront到s3存储桶对象简单url

我正在尝试访问cloudfront到s3存储桶对象响应“AccessDenied”。xxxxxxxxxxxxx.cloudfront.net/bucket_name/35.jpg

在存储桶内我可以访问 url 这是“公共”url。 https://s3.ap-south-1.amazonaws.com/bucket_name/35.jpg

我还尝试使用另一个带有签名 URL 结果的 Cloudfront ID 的另一个存储桶。请在此处查看代码 => amazon cloudfront 错误“AccessDenied”

amazon-s3 amazon-web-services amazon-cloudfront aws-sdk

2
推荐指数
1
解决办法
3309
查看次数

AWS cloudfront 是否支持用于自定义源的 TLSv1.3?

cloudfront 是否支持 TLSv1.3 我没有看到任何说明它支持 cloudfront 和自定义源之间的文档?我对使用 TLSv1.3 有非常强烈的要求

amazon-cloudfront

2
推荐指数
1
解决办法
1110
查看次数

内容管理系统 (CMS) 和内容交付网络 (CDN) 之间的区别?

我想弄清楚如何将 Adob​​e Experience Manager (AEM) 之类的 CMS 与 AWS CloudFront 之类的 CDN 服务进行比较?我是在比较苹果和橙子吗?提前致谢。

cdn content-management-system amazon-cloudfront aem

2
推荐指数
1
解决办法
2360
查看次数

通过 HTTPS 提供静态 S3 网站时降低 CloudFront 成本

我维护一个“业余爱好”网站来试验 AWS 技术。因为它是一种纯粹的爱好,所以我试图将其成本保持在尽可能低的水平,并且只使用那些绝对必要的服务。

几个月来,该网站开始产生一些流量,每天大约有 30-50 次点击,在某些日子里,每天点击量高达 1000 次。

我使用 CloudFront (CF) 的主要目的是使用 HTTPS 并有一种方法将我的域与我的 S3 网站存储桶连接起来,但由于点击量的增加,成本一直在上升。

显然,在这个阶段,成本是可控的(每月几美元),但正如我所说,我的目标是将成本保持在绝对最低限度,而 CF 开始成为我成本的最大份额。

查看 Bill Details 中的 CF 成本,向我展示 HTTPS 请求,尤其是带宽占成本的最大份额。

我正在寻找一种方法,让我能够继续将 CF 用于 HTTPS,并且有一种方法可以从 S3 存储桶安全地指向我的域,但可以降低请求和带宽导致的成本。

该网站是静态的,完全托管在 S3 上。它包含了:

  • 一个 index.html - 每小时自动更新
  • 10 个类别页面(每个页面大小为 250 KB)-每小时自动更新,它们包含指向详细信息页面的链接
  • < 1,000 个详细信息页面(每个页面大小为 100 KB) - 这些页面创建一次,然后不再更改
  • < 1,000 张图片(每个图片大小为 50 KB) - 每个详情页有 1 张图片,其行为与详情页相同

我的CF配置如下:

  • 没有源自定义标题
  • 行为:
    • 路径模式:默认 (*)
    • 查看器协议策略:将 HTTP 重定向到 HTTPS
    • 基于选定请求头的缓存:白名单
    • 白名单标头:Referer
    • 对象缓存:自定义
    • 最小。TTL:0
    • 最大限度。TTL:31536000
    • 默认 TTL:0
    • 转发 Cookie:无 …

amazon-s3 amazon-web-services amazon-cloudfront

2
推荐指数
1
解决办法
529
查看次数

使用 Route53 SRV 将 AWS CloudFront 指向 ECS

我想知道如何使用服务发现(Route 53 with SRV Record)将 AWS CloudFront 指向 AWS ECS 容器。

ECS 基于 Spot EC2,没有负载均衡器。

amazon-web-services amazon-ecs amazon-cloudfront

2
推荐指数
1
解决办法
1917
查看次数

是否需要在外部网站中为 AWS Cloudfront 进行配置?

我在 linodes 网络托管公司上托管了面向公众的 https 网站。我在我的 AWS 账户中为这个网站创建了 Cloudfront 分配,但它没有显示任何活动,好像什么也没发生。我需要对我的网站做些什么吗?如果是这样,我到底需要做什么?

假设我的分布的 cloudfront url 是 abcxyz.cloudfront.net,我的网站是 https 网站 mysite.com。

添加:

没有活动是指当我访问 mysite.com 时,我的 cloudfront 发行版中没有生成任何数据或日志,这意味着内容来自 mysite.com 而不是来自 cloudfront 缓存。当我访问 abcxyz.cloudfront.net 时,它会显示 mysite.com 的内容。

mysite.com 是动态 java 网站,html 内容是动态生成的,用户可以与 mysite.com 上的搜索功能进行交互。这是一个房地产网站,展示了很多房产的图片。所有图片的网址是动态生成的,看起来像https://开头www.mysite.com/photos/properties/5eef42ca5366c1485ad8693c/thumb/2500-feet-4.4-residential-for-sale-DSC_0001.JPG

登录 Linode.com(我的网络托管公司)后,我尝试在 CNAME DNS 设置中添加 CNAME 记录(abcxyz.cloudfront.net),但没有任何区别。

它已经超过 2 周了,但这个云前端分布的所有指标都是空的,而 mysite.com 每天有 2 到 3 个来自世界各地的访问者。

amazon-web-services amazon-cloudfront

2
推荐指数
1
解决办法
537
查看次数

Next.js:托管在 AWS Cloudfront 上时,如何使链接与导出的站点一起使用?

我正在尝试通过执行静态 html 导出(即next export),然后将生成的输出复制到 AWS S3 并通过 Cloudfront 提供服务来获得原型 Next.js 项目。

我在/pages目录中有以下两页:

  • index.tsx
  • Pricing.tsx

然后,从路由 doco 开始,Link从索引页面向定价页面添加了一个,如下所示:

<Link href="/Pricing">
  <a>Pricing</a>
</Link>
Run Code Online (Sandbox Code Playgroud)

这会产生一个看起来像这样的链接example.com/Pricing(当您将鼠标悬停在它上面并单击该链接时,该页面确实会更改为定价页面,并且浏览器在 URL 栏中显示“example.com/Pricing”)。

问题是,该链接不是真实的 - 无法直接通过 url 栏添加书签或导航到它。

问题似乎是,当我执行 a 时next export,Next.js.html为每个页面生成一个文件,但路由器不使用这些.html后缀。

因此,在使用该站点时,如果用户尝试添加书签example.com/Pricing;稍后加载该书签将失败,因为 Cloudfront 将返回 404(因为 CF 只知道该.html文件)。

然后我尝试改变我Link的样子:

<Link href="/Pricing.html">
  <a>Pricing</a>
</Link>
Run Code Online (Sandbox Code Playgroud)

这会导致路由器使用example.com/Pricing.html并且与 Cloudfront 一起工作正常 - 但它实际上在本地开发期间导致 404(即使用next dev)!

我可以尝试的其他解决方法是 …

amazon-s3 amazon-web-services amazon-cloudfront next.js

2
推荐指数
1
解决办法
1906
查看次数