Amazon web services 是否需要在外部网站中执行某些操作来配置AWS Cloudfront?

Amazon web services 是否需要在外部网站中执行某些操作来配置AWS Cloudfront?,amazon-web-services,amazon-cloudfront,Amazon Web Services,Amazon Cloudfront,我有一个https面向公众的网站托管在linodes网络托管公司。我在AWS帐户中为此网站创建了Cloudfront发行版,但它没有显示任何活动,就好像什么都没有发生一样。我需要对我的网站做些什么吗? 如果是,我到底需要做什么 假设我的发行版的cloudfront url是abcxyz.cloudfront.net,我的网站是mysite.com,它是https网站 增加: 所谓“无活动”,是指当我访问mysite.com时,cloudfront发行版中没有生成任何数据或日志,这意味着内容来自m

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

假设我的发行版的cloudfront url是abcxyz.cloudfront.net,我的网站是mysite.com,它是https网站

增加:

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

mysite.com是动态java网站,html内容是动态生成的,用户可以与mysite.com上的搜索功能交互。这是一个房地产网站,展示了很多房产的图片。所有图像URL都是动态生成的,看起来像 https://

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


这已经超过2周了,cloudfront发行版的所有指标都是空的,而mysite.com每天有2到3名来自世界各地的访问者。

只有在托管公司授予您DNS管理权限的情况下,您才能这样做。(如果是,那么您可以这样做)。检查您的真实服务器URL。(或在映射域的DNS中)一旦获得该值,您需要尝试使用该源创建Cloudfront分发。并将域映射到Cloudfront url

或者,您可以移动到DNS管理,以路由53。您必须在route 53记录中创建多个记录。让我解释一下

  • 您需要创建一个公共托管区域。(您将获得名称服务器)并在DNS管理(mysite.com)中创建名称服务器映射
  • 您需要将Mysite.com映射到CloudFront发行版。 稍后,您需要将网站的托管链接(基本上是公共服务器)映射到CloudFront源
  • 如果不可能,您需要创建一个与域相同的S3 bucket,并将所有内容重定向到实际服务器的公共URL
  • 谢谢


    Ashish

    我决定删除我原来的答案,并根据我刚才所做的一步一步地告诉你该怎么做。我创建了两个完全相同的网页,分别是fast.html和slow.html;他们唯一要做的就是加载9个非常大的图像,我从这里得到的,总共335兆字节。slow.html网页将从我的机器上的images目录加载图像。html网页将从CloudFrond发行版加载图像,然后从S3存储桶获取图像,我将图像上传到S3存储桶。所以,一步一步,就在这里

  • 创建一个名为cf big images的S3存储桶,并在存储桶内创建一个名为images的文件夹

  • 将图像上传到bucket。我使用命令awss3cp从apacheweb服务器根目录下的images文件夹复制了它们。s3://cf大图像/图像--递归

  • 进入S3 bucket中的images文件夹并将其公开;这是为公众设置为只读的

  • 在CloudFront中创建一个发行版。您只需填写“来源域名”字段。单击该字段,您将在那里看到您的S3 bucket“cf big images.S3.amazonaws.com”;选择它。[注:我的原始邮件中有此错误]

  • 就这样。单击“创建分发”并等待。这需要相当多的时间

  • 更改fast.html网页。在我的slow.html页面上,我有:

  • 
    
    在fast.html网页上,我有:

    
    
  • 然后,每次清除缓存时,我都会导航到slow.html和fast.html页面来运行一些测试;CloudFront的速度似乎要快得多,但这不是一个受控测试。以下是一些图片:

  • 希望它现在有意义。

    以下是一般流程的工作原理:

  • 用户访问该站点
  • example.com解析为yourcdn.cloudfront.net
  • cloudfront检查规则(这里有很多东西要打开,但我们假设它是一个 可缓存内容
  • cloudfront代表用户访问站点的服务器并存储返回的数据 内容
  • cloudfront然后将响应返回给用户
  • 对于下一个用户,将运行步骤1、2、3和5。您的站点不会收到更多流量

    以下是此设置所需的内容

  • DNS和@.example.com指向yourcdn.cloudfront.net
  • 万维网

    • www只是一个CNAME,游戏结束了
    @

    • @是apex域,如果不使用aws的route53,这是一个棘手的部分

    • @只接受您的cloudfront入口点没有的记录

    • @如果您使用的是Route53,aws将为您提供别名CNAME,从而解决此难题

    • 如果您不使用Route53,事情会变得更加复杂。您必须找到一种方法(托管服务或第三方),让您将@.example.com指向他们的IP,并重定向到

    • 您可以有一个只重定向到的静态nginx规则

    这并不能解决所有人的问题,在一些情况下,人们还使用CDN分发版作为internet的屏蔽,这可以称为WAF(web应用程序防火墙)它应该能让你远离网络怪物,在某些情况下,因为cloudfront+aws可以为你提供一些额外的保护、流量过滤等。放弃你的服务器IP到apex域,有点违反了这种方法

    现在,你们都准备好接收流量了。定义规则!这是有趣的部分


    待续

    您是否已更新DNS以解析到cloudfront CNAME?否。不知道如何进行。谢谢。这将在
    <img src="images/Img15.jpg">
    <img src="images/Img16.jpg">
    <img src="images/Img17.jpg">
    <img src="images/Img18.jpg">
    <img src="images/Img34.jpg">
    <img src="images/Img41.jpg">
    <img src="images/Img48.jpg">
    <img src="images/Img58.jpg">
    <img src="images/Img100.tif">
    
    <img src="https://d1pqzepyfmpq4.cloudfront.net/images/Img15.jpg">
    <img src="https://d1pqzepyfmpq4.cloudfront.net/images/Img16.jpg">
    <img src="https://d1pqzepyfmpq4.cloudfront.net/images/Img17.jpg">
    <img src="https://d1pqzepyfmpq4.cloudfront.net/images/Img18.jpg">
    <img src="https://d1pqzepyfmpq4.cloudfront.net/images/Img34.jpg">
    <img src="https://d1pqzepyfmpq4.cloudfront.net/images/Img41.jpg">
    <img src="https://d1pqzepyfmpq4.cloudfront.net/images/Img48.jpg">
    <img src="https://d1pqzepyfmpq4.cloudfront.net/images/Img58.jpg">
    <img src="https://d1pqzepyfmpq4.cloudfront.net/images/Img100.tif">
    
    server {
        server_name example.com;
        return 301 $scheme://www.example.com$request_uri;
    }