标签: amazon-cloudfront

使用ASP.NET 4.5 Bundling和CDN(例如CloudFront)

ASP.NET 4.5具有很好的新捆绑功能,似乎对CDN的使用有一些支持.Microsoft提供的使用CDN捆绑功能的示例就是这样

public static void RegisterBundles(BundleCollection bundles)
{
  //bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
  //            "~/Scripts/jquery-{version}.js"));

  bundles.UseCdn = true;   //enable CDN support

  //add link to jquery on the CDN
  var jqueryCdnPath = "http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.7.1.min.js";

  bundles.Add(new ScriptBundle("~/bundles/jquery",
            jqueryCdnPath).Include(
            "~/Scripts/jquery-{version}.js"));

  // Code removed for clarity.
} 
Run Code Online (Sandbox Code Playgroud)

这似乎暗示您需要明确告诉它CDN上文件的路径.

CloudFront CDN(我假设许多其他人)为您提供了一个镜像您自己的子域.什么时候你打http://uniquesubdomain.cloudfront.net/js/myfile.js?v=1它起来http://mydomain.com/js/myfile.js?v=1

这样,您可以简单地为所有链接添加前缀,http://uniquesubdomain.cloudfront.net/并且您的文件是来自CloudFront的服务器.

ASP.NET 4.5捆绑功能是否与此类CDN兼容?是否有一种内置方法可以将捆绑功能的所有链接作为CDN域的前缀?

例如.

bundles.UseCdn = true;
var myBundle= new ScriptBundle("~/bundles/js", "https://uniquedomain.cloudfront.net/");
myBundle.Include("~/js/file1.js");
myBundle.Include("~/js/file2.js");
Run Code Online (Sandbox Code Playgroud)

会导致

    <script src="https://uniquedomain.cloudfront.net/bundles/js?v=6y-qVPSK3RYOYHfPhOBDd92H4LjEjs-D3Hh2Yml6CXA1"></script>
Run Code Online (Sandbox Code Playgroud)

c# amazon-cloudfront asp.net-4.5 bundling-and-minification

33
推荐指数
2
解决办法
6432
查看次数

如何在API网关前添加CloudFront

API网关(APIG),虽然它使用CloudFront(CF),但它不支持CDN边缘缓存.当我配置CF分发以使用API​​G作为自定义源时,我收到权限被拒绝错误.

如何配置CF来解决这个问题?

cdn amazon-web-services amazon-cloudfront aws-api-gateway

33
推荐指数
2
解决办法
2万
查看次数

为Amazon CloudFront创建签名URL

简短版本:如何"按需"制作签名URL,以使用Python模拟Nginx的X-Accel-Redirect行为(即保护下载)与Amazon CloudFront/S3.

我有一个Django服务器,并运行Nginx前端.我一直受到了对它的请求的打击,最近不得不将其安装为Tornado WSGI应用程序,以防止它在FastCGI模式下崩溃.

现在我遇到了一个问题,我的服务器陷入困境(因为它的大部分带宽正在用完),因为有太多的媒体请求,我一直在寻找CDN,我相信Amazon CloudFront/S3对我来说是合适的解决方案.

我一直在使用Nginx的X-Accel-Redirect标头来保护文件免受未经授权的下载,但我没有使用CloudFront/S3的能力 - 但是它们确实提供了签名的URL.到目前为止,我不是Python专家,并且肯定不知道如何正确创建签名URL,所以我希望有人可以获得如何"按需"制作这些URL的链接,或者愿意解释如何在这里,我们将不胜感激.

而且,这是正确的解决方案吗?我不太熟悉CDN,是否有更适合这种情况的CDN?

python cdn amazon-cloudfront

30
推荐指数
3
解决办法
2万
查看次数

亚马逊云端分布与多个来源发生冲突吗?

我在2个网站上有2个不同的图像:

如果我有2个起源创建一个Amazon的Cloudfront分布:www.siteA.comwww.siteB.com,然后我呼吁uniqueDistributionID.cloudfront.net/avatar.png,然后avatar.png将被退回?中的一个siteA还是一个siteB

为什么不呢?

试图了解Cloudfront发行版中冲突的可能性.

conflict cdn content-delivery-network name-conflict amazon-cloudfront

29
推荐指数
1
解决办法
1万
查看次数

Amazon CloudFront延迟

我正在尝试使用AWS S3和CloudFront来处理我正在开发的Web应用程序.

在应用程序中,我让用户将文件上传到S3存储桶(使用AWS SDK)并通过CloudFront CDN使其可用,但问题是即使在S3存储桶中上传和准备文件大约需要一分钟或2在CloudFront CDN网址中可用,这是正常的吗?

amazon-s3 amazon-web-services amazon-cloudfront

29
推荐指数
1
解决办法
7308
查看次数

Amazon Cloudfront Cache-Control:24小时后no-cache标头无效

我在S3中托管一个静态网站,并使用Cloudfront缓存文件.我基本上有3个文件,包含以下标题:

  • index.html(Cache-Control:no-cache)
  • app.js(Cache-Control:max-age = 63072000,public)
  • style.css(Cache-Control:max-age = 63072000,public)

我的html文件使用查询字符串参数,每次更新我的css或js文件时都会更新.我已经配置了s3来传递这些参数,并且我已经验证它可以使缓存的资源无效.我的index.html文件看起来像这样:

<html>
    <head>
        ...
        <link rel="stylesheet" href="app.css?v=14113e2c764">
    </head>
    <body>
        ...
        <script src="app.js?v=14113e2c764"></script>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

它似乎工作得很好,因为我整天推送更新,但是当我第二天早上来并推动我的下一个更改时,index.html文件已过期.它没有正确的?v =参数,而是旧的!解决它的唯一方法是手动使html文件无效.然后一切都适用于其余的一天.第二天我又遇到了同样的问题.

这里发生了什么?

caching amazon-s3 amazon-web-services amazon-cloudfront

27
推荐指数
2
解决办法
3万
查看次数

Amazon S3 Cloudfront部署最佳实践

我们当前的网站计划是使用亚马逊的Cloudfront服务作为资产文件(如CSS,JavaScript和图像)以及任何其他静态文件的CDN.

我们目前在S3中有一个包含所有这些静态文件的存储桶.这些文件根据它们分为不同的文件夹,"脚本"是JS文件,"图像"是图像等yadda yadda yadda.

因此,我从一开始就没有意识到,一旦您将一个Bucket从S3部署到Cloudfront Distribution,那么对该存储桶的每个后续更新都不会再次部署到同一个Distribution.因此,每次进行静态文件更新时,您似乎都必须将存储桶重新部署到另一个Cloudfront实例.

这对于图像来说很好,因为我们可以轻松确保如果图像发生了变化,那么我们只需创建一个新图像.但是,对于CSS和JS来说,这很难做到.

所以,这让我想到了最佳实践问题:

  1. 最佳做法是为每个生产部署创建另一个Cloudfront Distribution吗?这里的问题是导致CNAME记录出现问题.
  2. 最好不要在Cloudfront中存储CSS和JS,因为这些文件的性质,以及它们是否需要轻松修改?似乎答案是否定的,因为这是CDN的目的.
  3. 是否还有一些我不了解的Cloudfront方法?

cdn amazon-s3 amazon-cloudfront

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

AWS CloudFront访问被拒绝到S3存储桶

我正在尝试设置CloudFront为我的S3存储桶中托管的静态文件.我有设置分发,但我AccessDenied在尝试浏览/CSS/stlyle.cssS3存储桶中的CSS()文件时得到:

<Error>
    <Code>AccessDenied</Code>
    <Message>Access Denied</Message>
    <RequestId>E193C9CDF4319589</RequestId>
    <HostId>
xbU85maj87/jukYihXnADjXoa4j2AMLFx7t08vtWZ9SRVmU1Ijq6ry2RDAh4G1IGPIeZG9IbFZg=
    </HostId>
</Error>
Run Code Online (Sandbox Code Playgroud)

我已将我的CloudFront分配设置为我的S3存储桶并创建了新的Origin Access Identity policy自动添加到S3存储桶:

{
    "Version": "2008-10-17",
    "Id": "PolicyForCloudFrontPrivateContent",
    "Statement": [
        {
            "Sid": "1",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity E21XQ8NAGWMBQQ"
            },
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::myhost.com.cdn/*"
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

我错过了什么?

我希望通过CloudFront提供此S3存储桶中的所有文件...

*更新*

这个云前端指南说:

默认情况下,您的Amazon S3存储桶及其中的所有对象都是私有的 - 只有创建存储桶的AWS账户才有权读取或写入其中的对象.如果要允许任何人使用CloudFront URL访问Amazon S3存储桶中的对象,则必须授予对象的公共读取权限.(这是使用CloudFront和Amazon S3时最常见的错误之一.您必须明确授予Amazon S3存储桶中每个对象的权限.)

所以基于此我已经为S3 bucket中的所有对象添加了新的权限Everyone Read/Download.现在我可以访问文件了.

但现在当我访问这样的文件https://d3u61axijg36on.cloudfront.net/css/style.css被重定向到S3 URI和HTTP.如何禁用此功能?

amazon-s3 amazon-web-services amazon-cloudfront

26
推荐指数
4
解决办法
2万
查看次数

AWS CLI CloudFront使所有文件无效

我试图使整个静态网站无效.以下命令似乎没有失效,/index.html并给出了一个奇数输出的项目,如下所示.这个AWS CLI行为是正常还是我遗漏了什么?谢谢!

aws cloudfront create-invalidation --distribution-id $DISTRIBUTION_ID --paths /*
Run Code Online (Sandbox Code Playgroud)

输出:

/index.html

command-line-interface amazon-web-services amazon-cloudfront

25
推荐指数
3
解决办法
5983
查看次数

如何使用裸域将S3,Cloudfront和Route 53重定向到HTTPS?

我有一个支持SSL的域名(example.com).尝试从www.example.com- > 重定向请求时遇到问题https://example.com.

我在尝试访问www.example.com时遇到的错误是:

请求无法满足.

错误的请求.

这些URL有效(重定向到https://example.com)

  • example.com
  • http://example.com
  • https://example.com

http://www.example.com 表明该网站不安全,这意味着它不使用该证书.


S3

我创建了2个S3 buckets example.com和www.example.com(分别为A和B).Bucket A的静态网站托管使网站托管指向example.com.Bucket B的Static Website Hosting已将所有请求重定向到example.com.


CloudFront的

我有一个包含2个备用域名(CNAME),example.com和www.example.com的发行版.我也有这个dist的SSL证书.


53号公路

我有一个带有2个A类别名的托管区域,example.com和www.example.com都指向Cloudfront的发行版(XX.cloudfront.net)

amazon-s3 amazon-web-services amazon-cloudfront

25
推荐指数
2
解决办法
2万
查看次数