ivansible.srv_cdn
ivansible.srv_cdn
此角色用于配置简单的基于 nginx 的 CDN。
任何 CDN 请求可以包含几个可选的 HTTP 头:
X-CDN-Front
- 期望的前端主机名称,默认为请求中的主机名。X-CDN-Host
- 期望的服务器主机名称,用于确定源,默认为$cdn_front
。X-CDN-Back
- 期望的源主机名称,可选,覆盖默认源。
要求
无
变量
可用的变量如下所示,包括默认值。
srv_cdn_sites:
- server: .mydomain.com
origin: www.example.com
lecert: mydomain.com
主站点列表包含以下字段的记录:
server
- 前端服务器名称,可以是full.host.name
或.domain.name
(必需);origin
- 支持 https 的源服务器主机名(必需);lecert
- 服务器的自定义 letsencrypt 证书名称(可选);hidden
- 如果为 true,则定义了服务器到源的映射但跳过服务器名称 (可选,默认为false
)。
srv_cdn_default_origin: example.com
后备源。
srv_cdn_cloudflare:
- zone: example.com
name: {{ inventory_hostname }}
type: AAAA
value: {{ ansible_default_ipv6.address }}
proxied: false
每个主机的 Cloudflare 记录列表包含以下字段:
zone
- 记录的区域(必需);name
- 记录名称(通常是不合格的主机名),必需;type
- 记录类型之一:A AAAA CNAME 等(必需);value
- 可选值,如果为空或为假,则跳过记录;proxied
- true 或 false,默认为false
。
srv_cdn_cloudflare_email: ~
srv_cdn_cloudflare_token: ~
CloudFlare 凭据。如果这些设置为空、为假或未定义, 则将跳过 Cloudflare 任务。
srv_cdn_cloudfront:
- server: www.mydomain.com
reference: www.mydomain.com_cdn1
origin: override.example.com
lecert: mydomain.com
cache: false
该数组配置 CloudFront CDN 分发,具有完整的网页路径
如 cloudfront -> server -> origin
,每个记录包含字段:
server
- 与上述站点列表中的记录匹配的前端服务器名称(必需);origin
- 可选,覆盖上述站点列表中的origin
;reference
- 唯一 的 cloudfront 标识符 (可选,默认为带有后缀的服务器名称);lecert
- 服务器的自定义 letsencrypt 证书名称(可选);cache
-false
禁用 CloudFront 缓存,true
启用 (可选,默认为srv_cdn_cloudfront_default_cache
);delete
- 如果为 true,则将删除分发而不是创建/更新 (可选,默认为false
)。
srv_cdn_cloudfront_default_reference: SERVER_cdn
分发参考的默认名称(SERVER
将替换为实际的服务器名称)。
srv_cdn_filters:
- src: ...
dst: ...
这些替换将应用于 HTML。
srv_cdn_cloudfront_max_ttl: 2592000 # 一个月
srv_cdn_cloudfront_default_ttl: 86400 # 一天
srv_cdn_cloudfront_cached_methods: [GET, HEAD]
srv_cdn_cloudfront_default_cache: true
CloudFront 缓存的各种默认值。
srv_cdn_cloudfront_access_key: ~
srv_cdn_cloudfront_secret_key: ~
Amazon CloudFront 凭据,如果 srv_cdn_cloudfront
有记录,则为必需;
否则为可选。如果这些设置为空或未定义,则默认使用
Ansible 控制器主机上的环境变量 AWS_ACCESS_KEY_ID
和 AWS_SECRET_ACCESS_KEY
。
标签
srv_cdn_cloudflare
- 配置 CloudFlare 中的 DNS 记录srv_cdn_cloudfront
- 配置 CloudFront 分发srv_cdn_nginx
- 配置 nginx 中的 CDN 站点和映射srv_cdn_nginx_site
- 配置 nginx 中的常见 CDN 站点设置srv_cdn_all
- 以上所有
依赖关系
ivansible.nginx_base
- 继承默认值和处理程序ivansible.lin_nginx
(隐式依赖)
示例剧本
- hosts: myserver
roles:
- role: ivansible.srv_cdn
许可
MIT
作者信息
由 IvanSible 创建于 2020-2021 年