ivansible.srv_cdn
ivansible.srv_cdn
Ten skrypt konfiguruje prosty system CDN oparty na nginx.
Każde żądanie CDN może zawierać kilka opcjonalnych nagłówków HTTP:
X-CDN-Front- pożądana nazwa hosta frontowego, domyślnie to nazwa hosta z żądania.X-CDN-Host- pożądana nazwa hosta serwera, określa źródło, domyślnie to$cdn_front.X-CDN-Back- pożądana nazwa hosta źródłowego, opcjonalna, nadpisuje źródło.
Wymagania
Brak
Zmienne
Dostępne zmienne są wymienione poniżej, wraz z wartościami domyślnymi.
srv_cdn_sites:
- server: .mojadomena.com
origin: www.przyklad.com
lecert: mojadomena.com
Główna lista witryn zawiera rekordy z następującymi polami:
server- nazwa serwera frontowego, może byćfull.host.namelub.domain.name(wymagane);origin- nazwa hosta serwera źródłowego, który musi obsługiwać https (wymagane);lecert- nazwa niestandardowego certyfikatu letsencrypt dla serwera (opcjonalne);hidden- jeśli prawda, mapowanie serwera do źródła jest zdefiniowane, ale nazwa serwera jest pomijana (opcjonalne, domyślniefalse).
srv_cdn_default_origin: przyklad.com
Domyślne źródło.
srv_cdn_cloudflare:
- zone: przyklad.com
name: {{ inventory_hostname }}
type: AAAA
value: {{ ansible_default_ipv6.address }}
proxied: false
Lista rekordów cloudflare dla każdego hosta zawiera następujące pola:
zone- strefa dla rekordu (wymagane);name- nazwa rekordu (zazwyczaj niekwalifikowana nazwa hosta), wymagane;type- typ rekordu, jeden z: A AAAA CNAME itp. (wymagane);value- opcjonalna wartość, rekord zostanie pominięty, jeśli jest pusty lub fałszywy;proxied- true lub false, domyślniefalse.
srv_cdn_cloudflare_email: ~
srv_cdn_cloudflare_token: ~
Dane logowania do CloudFlare. Jeśli te ustawienia są puste, fałszywe lub nieokreślone, zadania cloudflare będą pominięte.
srv_cdn_cloudfront:
- server: www.mojadomena.com
reference: www.mojadomena.com_cdn1
origin: override.przyklad.com
lecert: mojadomena.com
cache: false
Ta tablica konfiguruje dystrybucje CDN CloudFront z pełnymi ścieżkami internetowymi
takimi jak cloudfront -> serwer -> źródło, gdzie każdy rekord ma pola:
server- nazwa serwera frontowego odpowiadająca rekordowi z listy witryn powyżej (wymagane);origin- opcjonalnie, nadpisujeoriginz listy witryn powyżej;reference- unikalny identyfikator CloudFront (opcjonalne, domyślnie nazwa serwera z sufiksem);lecert- nazwa niestandardowego certyfikatu letsencrypt dla serwera (opcjonalne);cache-falsewyłącza buforowanie w CloudFront,true- włącza je (opcjonalne, domyślnie tosrv_cdn_cloudfront_default_cache);delete- jeśli prawda, dystrybucja zostanie usunięta zamiast utworzenia/aktualizacji (opcjonalne, domyślniefalse).
srv_cdn_cloudfront_default_reference: SERVER_cdn
Domyślna nazwa dla referencji dystrybucji (SERVER jest zastępowane rzeczywistą nazwą serwera).
srv_cdn_filters:
- src: ...
dst: ...
Te zamiany będą stosowane do HTML.
srv_cdn_cloudfront_max_ttl: 2592000 # jeden miesiąc
srv_cdn_cloudfront_default_ttl: 86400 # jeden dzień
srv_cdn_cloudfront_cached_methods: [GET, HEAD]
srv_cdn_cloudfront_default_cache: true
Różne domyślne wartości dla buforowania w CloudFront.
srv_cdn_cloudfront_access_key: ~
srv_cdn_cloudfront_secret_key: ~
Dane logowania do Amazon CloudFront, wymagane, jeśli srv_cdn_cloudfront ma rekordy,
opcjonalne w przeciwnym razie. Jeśli te ustawienia są puste lub nieokreślone, domyślnie mają wartość
zmiennych środowiskowych AWS_ACCESS_KEY_ID i AWS_SECRET_ACCESS_KEY
na hoście kontrolera ansible.
Tagowanie
srv_cdn_cloudflare- konfiguruje rekordy DNS w CloudFlaresrv_cdn_cloudfront- konfiguruje dystrybucje CloudFrontsrv_cdn_nginx- konfiguruje witrynę CDN i mapowania w nginxsrv_cdn_nginx_site- konfiguruje wspólne ustawienia witryny CDN w nginxsrv_cdn_all- wszystkie powyższe
Zależności
ivansible.nginx_base- dziedziczy domyślne ustawienia i obsługęivansible.lin_nginx(ukryta zależność)
Przykładowy skrypt
- hosts: mojaserwer
roles:
- role: ivansible.srv_cdn
Licencja
MIT
Informacje o autorze
Stworzone w latach 2020-2021 przez IvanSible
ansible-galaxy install ivansible.srv_cdn