Архитектура фронтенда CRC на Azure
Браузер → Azure CDN → Blob Storage ($web container)
↓
Custom Domain (HTTPS) → Azure CDN endpoint
Создание Storage Account
# Resource Group
az group create --name crc-resources --location westeurope
# Storage Account
az storage account create \
--name ivanpetrovresume \
--resource-group crc-resources \
--location westeurope \
--sku Standard_LRS \
--kind StorageV2 \
--min-tls-version TLS1_2
# Включаем Static Website
az storage blob service-properties update \
--account-name ivanpetrovresume \
--static-website \
--index-document index.html \
--404-document error.html
# Получаем URL
az storage account show \
--name ivanpetrovresume \
--query 'primaryEndpoints.web' --output tsv
# https://ivanpetrovresume.z6.web.core.windows.net/
Загрузка файлов
# Загрузка файлов в $web контейнер
az storage blob upload-batch \
--account-name ivanpetrovresume \
--source ./frontend/ \
--destination '$web' \
--overwrite \
--content-cache-control "max-age=3600"
# Установка Content-Type для HTML
az storage blob update \
--account-name ivanpetrovresume \
--container-name '$web' \
--name index.html \
--content-type "text/html; charset=utf-8"
Azure CDN
# CDN Profile
az cdn profile create \
--resource-group crc-resources \
--name crc-cdn-profile \
--sku Standard_Microsoft
# CDN Endpoint
az cdn endpoint create \
--resource-group crc-resources \
--profile-name crc-cdn-profile \
--name ivanpetrov-resume \
--origin ivanpetrovresume.z6.web.core.windows.net \
--origin-host-header ivanpetrovresume.z6.web.core.windows.net \
--enable-compression \
--content-types-to-compress "text/html" "text/css" "application/javascript"
# Custom Domain
az cdn custom-domain create \
--resource-group crc-resources \
--profile-name crc-cdn-profile \
--endpoint-name ivanpetrov-resume \
--hostname resume.ivanpetrov.com \
--name resume
# HTTPS
az cdn custom-domain enable-https \
--resource-group crc-resources \
--profile-name crc-cdn-profile \
--endpoint-name ivanpetrov-resume \
--name resume
Преимущества Azure подхода
| Преимущество |
Описание |
| Автоматический HTTPS |
Static website endpoint работает через HTTPS |
| Простая очистка |
az group delete удаляет всё |
| Встроенная компрессия |
CDN сжимает HTML/CSS/JS |
| Бесплатный SSL |
Azure-managed сертификат |
Инвалидация кэша
az cdn endpoint purge \
--resource-group crc-resources \
--profile-name crc-cdn-profile \
--name ivanpetrov-resume \
--content-paths "/*"
Зачем указывать origin-host-header при создании CDN endpoint?
Какое преимущество Azure имеет перед AWS для очистки CRC-ресурсов?
Поддерживает ли Azure Blob Static Website HTTPS автоматически?
Какой SKU рекомендуется для Azure CDN в CRC?
Какой контейнер Blob Storage используется для static website файлов?