标签: amazon-cloudfront

CNAMEAlreadyExists:将子域指向新帐户中的分配

我试图将一个子域指向一个新的发行版。我有两个帐户:legacynew

传统的帐户拥有这些资源:

  • Route53 托管区域foo.com,具有:
    • CNAME a.foo.com->xyz.cloudfront.net
  • 带域名的 Cloudfront 分发xyz.cloudfront.net
    • 备用域名 (CNAME) a.foo.com
    • 证书 a.foo.com

新的帐户拥有这些资源:

  • 带域名的 CloudFront 分配 qrs.cloudfront.net

我希望最终设置是a.foo.comCNAME 到qrs.cloudfront.net. (我不明白为什么 CloudFront 发行版需要知道 CNAME 的内容,这可能是我不理解下面错误的部分原因。)

所以我正在关注这些官方文档。我正在尝试通过*.foo.com在新的 CloudFront 分配上设置为备用域名来执行第 3 步。

但我收到以下错误:

com.amazonaws.services.cloudfront.model.CNAMEAlreadyExistsException:您提供的一个或多个 CNAME 已经与不同的资源相关联。(服务:AmazonCloudFront;状态代码:409;错误代码:CNAMEAlreadyExists;)

cname amazon-cloudfront amazon-route53

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

如何使用 CloudFront 和 ELB 进行 http 到 https 重定向

我已经为 SSL 实施了 AWS ELB。它在我的域中运行良好。我想将http重定向到https。所以我使用了 CloudFront。但是在实施了 cloudfront 之后,我并没有取得成功。

为了实现 Cloudfront,我使用默认 SSL,因为region=us-east-1. 我已经更新了 Route53 中的 CNames。

为了在 ELB 下生成证书,我选择了全局。

有什么建议吗?

amazon-cloudfront amazon-route53

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

AWS 负载均衡器,提供静态站点和 API

首先为我的无知感到抱歉,但在 AWS ELB 词中有一个对我来说不是很清楚的概念。

我有一个部署在 cloudfront 上的前端站点和一个运行在 EC2 实例中的 API。

我想要存档的是避免有 2 个域来提供相同的数据。

例如,我想使用https://example.com/post通过我的网站访问,您将看到该网站本身(来自 cloudfront 的 HTML)。

但是,如果您尝试通过 HTTP/HEADER访问https://example.com/postAccept: application/json您将能够看到来自 API 服务器本身(EC2 实例)的 json 内容。

可以使用 ELB 吗?或者我是否必须在 EC2 实例中使用一些技巧,例如将 nginx 设置为代理并在不存在标头的情况下提供云端内容?

提前致谢。

api nginx amazon-web-services amazon-cloudfront amazon-elb

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

S3 上的 Angular,刷新导致“AccessDenied”响应

我有一个 angular 5 应用程序 - 我一直在本地运行,让它在 heroku 上运行一个 nodjs 服务器很好,但是当我把它放在一个 S3 存储桶中时,在 cloudfront 后面,我点击刷新我得到了这个。

This XML file does not appear to have any style information associated with it. The document tree is shown below.
<Error>
<Code>AccessDenied</Code>
<Message>Access Denied</Message>
<RequestId>217...1C</RequestId>
<HostId>
yu2de...dr0=
</HostId>
</Error>
Run Code Online (Sandbox Code Playgroud)

有什么建议?

amazon-s3 amazon-cloudfront angular

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

为什么 aws cli 不会正确地使缓存无效 - AWS Cloudfront

我创建了一个 Jenkins 作业,每次部署我的前端项目时都会使缓存无效。问题是,虽然 AWS 网站显示缓存无效,但当作业完成时,缓存并未完全清除,因此我需要通过 AWS 网站手动使其无效...

我使用的自动使缓存无效的方法是通过aws 容器,我在其中执行以下命令:

  • aws cloudfront create-invalidation --distribution-id ${DISTRIBUTION_ID} --paths /* > output.json

输出文件将包含一个 json,我可以在其中获取不同的键:值。我使用的其中两个是IdStatus。创建失效后,我执行以下另一个管道步骤:

  • aws cloudfront get-invalidation --distribution-id ${DISTRIBUTION_ID} --id ${id_invalidator} > status_invalidation.json

使用之前的命令,我每 50 秒(通过 a sleep 50)向API 请求一次失效状态。当验证返回“Status = Completed”时,作业就完成了。此条件在 while 循环内。

有人知道为什么会这样吗?

pipeline amazon-web-services jenkins amazon-cloudfront aws-cli

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

如何在 Cloudfront Lambda@Edge Origin Request 中添加自定义标头?

我有一个自定义来源的 Cloudfront 发行版。

我想使用 Lambda@Edge 源请求来修改和添加一些额外的标头以转发到我的源服务器。

下面是我的 Lambda 函数。该custom_header是CloudWatch的日志我的LAMBDA可见,但在我的自定义服务器请求头不显示:(。

exports.handler = (event, context, callback) => {
  const request = event.Records[0].cf.request;
  const headers = request.headers;

  headers['custom_header'] = [{ key: 'custom_header', value: 'custom_header' }];

  return callback(null, request);
}
Run Code Online (Sandbox Code Playgroud)

我希望custom_header在我的 Node.js 路由中可见req.headers

amazon-web-services amazon-cloudfront aws-lambda aws-lambda-edge

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

Cloudflare HTTPS 子域到 Cloudfront/S3-bucket 给出 403

我的 DNS 使用 Cloudflare 并且 SSL 已满。我正在尝试设置一个子域;https://humlor.myrenas.se并将其指向 AWS S3-bucket。我已经使用默认的 CloudFront 证书 (*.cloudfront.net) 设置了 Cloudfront,该站点可在https://d2ufhnw2kk1vh9.cloudfront.net/ 上找到(没有设置 CSS 的一些绝对路径的样式)

然后我在 Cloudflare 中创建了一个 CNAME 记录:CNAME humlor is an alias of d2ufhnw2kk1vh9.cloudfront.net

但是https://humlor.myrenas.se/给出:403 ERROR 无法满足请求。错误的请求。

我需要在 Cloudfront 中使用另一个证书吗?或者缺少什么?

amazon-s3 amazon-web-services cloudflare amazon-cloudfront

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

使用 cloudfront 预加载服务器

我们通过 cloudfront CDN 为我们的 angular 6 bassed 网站提供服务。我们已经在 cloudfront 设置中检查了 HTTP2。我们如何使用 HTTP2 服务器推送(预加载)功能来像 cloudflare 一样提高网站的性能。

在 cloudflare 中,可以在请求中传递 LINK 标头,例如 Link: ; rel=预加载;as=脚本

amazon-cloudfront

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

有什么方法可以将 AWS Cloudfront 设置为指向静态 IP 地址(托管在 GoDaddy 上的 WP)?

所以我在 Godaddy 上托管了一个 Wordpress 站点,但 DNS 位于 Route53 上,我希望它只能通过 https 访问。

因此,我使用 ACM 和使用该证书的 Cloudfront 发行版设置了 SSL 证书,但我从 GoDaddy 获得的只是一个 IP 地址,Cloudfront 不允许我将源设置为 IP。

有什么办法可以做到这一点?

wordpress https amazon-web-services amazon-cloudfront amazon-route53

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

如何从一个 Cloudfront 发行版迁移到另一个 Cloudfront 发行版

我们正在使用 cloudfront 作为前端 Web 应用程序(带有 s3、lambda、athena 等的 myapp.com)在新版本发布之前,我们正在创建一个带有新代码的全新发行版(next.myapp.com)和内容,测试,然后想使它成为 myapp.com 的实时版本。但这似乎不可能。

多个 Cloudfront 发行版不能具有相同的 CNAME,因此我们无法更改 myapp.com 的 DNS 条目以指向新服务。更改分布意味着随着新配置在世界各地流行,会有延迟。

使用亚马逊基础设施是否可以做到这一点?还是我这样做完全错误?希望能够尽快迁移实时服务,但如果版本出现问题,仍然可以使用现有版本进行手动故障回复

amazon-web-services amazon-cloudfront

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