elefant / app-cloudfront
Elefant CMS 的 CloudFront 应用程序
Requires
This package is auto-updated.
Last update: 2024-08-25 06:42:26 UTC
README
这是一个极其简单的应用程序,用于帮助将 Elefant 网站与 Elefant 网站与 Amazon CloudFront 内容分发网络 (CDN) 集成。
设置
1. 在 AWS 管理控制台中注册一个 AWS 账户,并将 CloudFront 添加到您的服务中。
2. 仍然在 AWS 管理控制台中,转到 CloudFront 并单击 创建分发
按钮。在创建分发向导中选择以下选项
- 交付方法:
下载
- 分发类型:
自定义源
- 源 DNS 名称:
www.example.com
确保将
www.example.com
更改为与您的网站域名匹配。
有关其他设置的更多信息,请参阅这里。现在单击继续。
3. 可选 在分发详细信息下,选择一个子域,例如 cdn.example.com
,并将其输入到 CNAME 字段中。我们将在后续步骤中将此 CNAME 指向 CloudFront 的 DNS 设置。有关其他设置的更多信息,请参阅这里。
4. 可选 一旦您创建了 CloudFront 分发,请复制显示在域名选项卡中的域名。登录到您的注册商并按以下方式添加一个 CNAME 到您的 DNS
Subdomain Record Type IP or Domain
cdn.example.com CNAME d604721fxaaqy9.cloudfront.net
5. 将 cloudfront
应用程序复制到您的 Elefant 安装的 apps
文件夹中,然后在 Elefant 管理工具栏中访问“额外功能”>“CloudFront”,并将 Amazon AWS CDN 域名(来自步骤 3)输入到 domain
字段中。
如果您决定不使用 CNAME 并跳过了步骤 3 和 4,只需复制新创建的 CloudFront 分发下域名选项卡中的域名,并用它代替。
使用方法
在您的视图和布局中,您想通过 CloudFront 服务的任何文件都应该更改如下
<img src="{! cloudfront/files/images/logo.png !}" />
文件路径简单地用 {! !}
标签包裹(单个空格是可选的,将被忽略),并将 cloudfront
添加到文件路径中。这会将文件路径传递给 CloudFront 应用程序的主处理程序,以便将其重写为 CloudFront 引用。
您也可以直接通过 PHP 调用它,如下所示
<?php echo $this->run ('cloudfront/files/images/logo.png'); ?>
或者,您也可以直接在 CDN 上引用相同的文件路径,如下所示
<img src="https://cdn.example.com/files/images/logo.png" />
这是更直接的方式,消除了额外的处理程序调用。动态处理程序确实会进行一些额外检查,以验证请求文件的合法性,这在文件名提前未知的情况下非常有用,但牺牲了少许优化。因此,尽可能使用直接 URL,如果请求的文件是动态的,则可能最好使用处理程序。
Gzip 压缩
CloudFront 不会自动压缩文件,但您可以在服务器配置中添加几行代码,以确保在可能的情况下正确发送压缩文件。以下是 Nginx 用户的一个简短配置,告诉 CloudFront 正确地服务压缩文件
gzip on;
gzip_http_version 1.0;
gzip_proxied any;
gzip_types text/css application/x-javascript;
gzip_vary on;