Размещение статических веб-сайтов в службе хранилища Azure

Вы можете передавать статическое содержимое (HTML, CSS, JavaScript и файлы изображений) непосредственно из контейнера хранилища с именем $web. Размещение содержимого в службе хранилища Azure позволяет вам использовать бессерверные архитектуры, включающие Функции Azure и другие службы PaaS (платформа как услуга). Размещение статических веб-сайтов в службе хранилища Azure — это отличный вариант в случаях, когда не требуется веб-сервер для отрисовки содержимого.

У статических веб-сайтов есть некоторые ограничения. Например, если требуется настроить заголовки, необходимо использовать сеть доставки содержимого Azure (Azure CDN). Настройка заголовков в функциях самого статического веб-сайта не предусмотрена. Кроме того, AuthN и AuthZ не поддерживаются.

Если эти функции важны для вашего сценария, рассмотрите возможность использования Статических веб-приложений Azure. Это отличная альтернатива статическим веб-сайтам, которая также подходит в тех случаях, когда веб-сервер не должен визуализировать содержимое. Эта служба позволяет настраивать заголовки и полностью поддерживает AuthN и AuthZ. Статические веб-приложения Azure предоставляют полностью управляемый процесс непрерывной интеграции и непрерывной поставки (CI/CD) из источника GitHub в глобальное развертывание.

Если для подготовки содержимого к просмотру требуется веб-сервер, можно использовать Службу приложений Azure.

Настройка статического веб-сайта

Размещение статических веб-сайтов — это функция, которую необходимо включить в учетной записи хранения.

Чтобы включить размещение статических веб-сайтов, выберите имя файла по умолчанию, а затем при необходимости укажите путь к настраиваемой странице ошибки 404. Если контейнер хранилища BLOB-объектов с именем $web еще не существует в учетной записи, он будет создан автоматически. Добавьте в этот контейнер файлы сайта.

Пошаговые инструкции см. в статье Размещение статического веб-сайта в службе хранилища Azure.

Azure Storage static websites metrics metric

В файлах в контейнере $web учитывается регистр. Они обслуживаются посредством анонимных запросов на доступ и доступны только через операции чтения.

Отправка содержимого

Для отправки содержимого в контейнер $web можно использовать любой из этих инструментов:

Просмотр содержимого

Пользователи могут просматривать содержимое сайта из браузера, используя общедоступный URL-адрес веб-сайта. URL-адрес можно найти с помощью портала Azure, Azure CLI или PowerShell. См. раздел Поиск URL-адреса веб-сайта.

Документ индекса, который вы указываете при включении размещения статических веб-сайтов, появляется, когда пользователи открывают сайт и не указывают конкретный файл (например, https://contosoblobaccount.z22.web.core.windows.net).

Если сервер возвращает ошибку 404, и вы не указали документ об ошибке при включении веб-сайта, то 404 страница по умолчанию возвращается пользователю.

Примечание.

Поддержка CORS для Службы хранилища Azure недоступна со статическим веб-сайтом.

Вторичные конечные точки

Если вы настроили избыточность в дополнительном регионе, вы также можете получить доступ к содержимому веб-сайта с помощью вторичной конечной точки. Данные реплика асинхронно в вторичные регионы. Поэтому файлы, доступные на вторичной конечной точке, не всегда синхронизируются с файлами, доступными в основной конечной точке.

Влияние настройки уровня доступа в веб-контейнере

Вы можете изменить уровень анонимного доступа контейнера $web , но это изменение не влияет на основную статическую конечную точку веб-сайта, так как эти файлы обслуживаются с помощью анонимных запросов на доступ. Это означает общий (только для чтения) доступ ко всем файлам.

Хотя основная статическую конечную точку веб-сайта не затрагивается, изменение уровня анонимного доступа влияет на основную конечную точку службы BLOB-объектов.

Например, если изменить уровень анонимного доступа контейнера $web из частного (без анонимного доступа) на BLOB-объект (только анонимный доступ на чтение для больших двоичных объектов), уровень анонимного доступа к первичной конечной точке https://contosoblobaccount.z22.web.core.windows.net/index.html статического веб-сайта не изменяется.

Однако анонимный доступ к основной конечной точке https://contosoblobaccount.blob.core.windows.net/$web/index.html службы BLOB-объектов изменяется, что позволяет пользователям открывать этот файл с помощью любой из этих двух конечных точек.

Отключение анонимного доступа в учетной записи хранения с помощью параметра анонимного доступа учетной записи хранения не влияет на статические веб-сайты, размещенные в этой учетной записи хранения. Дополнительные сведения см. в статье Исправление анонимного доступа на чтение к данным BLOB-объектов (развертывания Azure Resource Manager).

Сопоставление личного домена с URL-адресом статического веб-сайта

Вы можете сделать статический веб-сайт доступным через личный домен.

Разрешить HTTP-доступ для личного домена проще, так как служба хранилища Azure изначально поддерживает его. Чтобы включить ПРОТОКОЛ HTTPS, необходимо использовать Azure CDN, так как служба хранилища Azure еще не поддерживает HTTPS с пользовательскими доменами. Пошаговые инструкции приведены в статье Сопоставление личного домена с конечной точкой хранилища BLOB-объектов Azure.

Если учетная запись хранения настроена на требование безопасной передачи по HTTPS, пользователи должны использовать конечную точку HTTPS.

Совет

Рассмотрите возможность размещения домена в Azure. Дополнительные сведения см. в статье Размещение домена в Azure DNS.

Добавление заголовков HTTP

Способы настройки заголовков как части функции статического веб-сайта не предусмотрены. Однако для добавления заголовков и добавления (или перезаписи) значений заголовков можно использовать Azure CDN. См. статью Справочник по стандартному обработчику правил для Azure CDN.

Если вы хотите использовать заголовки для управления кэшированием, ознакомьтесь со статьей Управление режимом кэширования Azure CDN с помощью правил кэширования.

Размещение веб-сайтов в нескольких регионах

Если вы планируете размещать веб-сайт в нескольких географических регионах, мы рекомендуем использовать сеть доставки содержимого для регионального кэширования. Используйте Azure Front Door, если хотите предоставлять различное содержимое в каждом регионе. Также предоставляется возможность отработки отказа. Диспетчер трафика Azure не рекомендуется, если планируется использовать личный домен. Проблемы могут возникать из-за способа проверки имен личных доменов Службой хранилища Azure.

Разрешения

Разрешение на включение статического веб-сайта — Microsoft.Storage/storageAccounts/blobServices/write или shared key. Встроенные роли, предоставляющие этот доступ, включают в себя участника учетной записи хранения.

Ценообразование

Размещение статического веб-сайта можно включить бесплатно. Вам будет выставлен счет только за хранилище BLOB-объектов, которое использует сайт, а также за эксплуатационные расходы. Дополнительные сведения о ценах на хранилище BLOB-объектов Azure см. на странице цен.

Метрики

Вы можете включить метрики на страницах статического веб-сайта. После включения метрик статистика трафика файлов в контейнере $web будет отображаться на панели мониторинга метрик.

Сведения о включении метрик на страницах статического веб-сайта см. в разделе Включение метрик на страницах статического веб-сайта.

Поддерживаемые компоненты

На поддержку данной функции может повлиять включение протокола Data Lake Storage 2-го поколения, протокола сетевой файловой системы (NFS) 3.0 или протокола SFTP. Если вы включили любую из этих возможностей, см. Сведения о поддержке функций хранилища BLOB-объектов в учетных записях хранения Azure, чтобы оценить поддержку данной функции.

Часто задаваемые вопросы

Работает ли брандмауэр службы хранилища Azure со статическим веб-сайтом?

Да. Правила сетевой безопасности учетной записи хранения, включая брандмауэры на основе протоколов IP и виртуальной сети, поддерживаются для конечной точки статического веб-сайта и могут использоваться для защиты веб-сайта.

Поддерживают ли статические веб-сайты службу Microsoft Entra ID?

Нет. Статический веб-сайт поддерживает только анонимный доступ на чтение файлов в контейнере $web .

Как использовать личный домен со статическим веб-сайтом?

Можно настроить личный домен со статическим веб-сайтом с помощью сети доставки содержимого (Azure CDN). Azure CDN обеспечивает постоянно низкую задержку при доступе к веб-сайту из любого расположения.

Разделы справки использовать пользовательский ssl-сертификат уровня secure Sockets (SSL) со статическим веб-сайтом?

Вы можете настроить настраиваемый SSL-сертификат со статическим веб-сайтом с помощью Azure CDN. Azure CDN обеспечивает постоянно низкую задержку при доступе к веб-сайту из любого расположения.

Как добавить настраиваемые заголовки и правила с помощью статического веб-сайта?

Заголовок узла для статического веб-сайта можно настроить с помощью Azure CDN — Verizon Premium. Мы хотели бы услышать ваши отзывы здесь.

Почему я получаю сообщение об ошибке HTTP 404 от статического веб-сайта?

Ошибка 404 может произойти, если вы ссылаетесь на имя файла, используя неправильный случай. Например, Index.html вместо index.html. В именах файлов и расширениях в URL-адресе статического веб-сайта учитывается регистр, даже если они обслуживаются по протоколу HTTP. Это также может произойти, если конечная точка Azure CDN еще не подготовлена. Дождитесь завершения распространения (до 90 минут) после подготовки новой сети Azure CDN.

Почему корневая папка веб-сайта не перенаправляется на страницу индексов по умолчанию?

На портале Azure откройте страницу конфигурации статического веб-сайта своей учетной записи и найдите имя и расширение, заданные в поле Имя документа индекса. Убедитесь, что это имя совпадает с именем файла, расположенного в контейнере $web учетной записи хранения. В именах файлов и расширениях в URL-адресе статического веб-сайта учитывается регистр, даже если они обслуживаются по протоколу HTTP.

Следующие шаги