Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Хранилище BLOB-объектов Azure идеально подходит для хранения больших объемов неструктурированных данных, таких как текст, изображения и видео. Because blob storage also provides static website hosting support, it's a great option in cases where you don't require a web server to render content. Хотя вы ограничены размещением статического содержимого, например HTML, CSS, JavaScript и файлов изображений, вы можете использовать бессерверные архитектуры, включая Функции Azure и другие службы Платформы как услуга (PaaS).
У статических веб-сайтов есть некоторые ограничения. Например, если требуется настроить заголовки, необходимо использовать сеть доставки содержимого Azure (Azure CDN). Настройка заголовков в функциях самого статического веб-сайта не предусмотрена. Кроме того, AuthN и AuthZ не поддерживаются.
Если эти функции важны для вашего сценария, рассмотрите возможность использования Статических веб-приложений Azure. Это отличная альтернатива статическим веб-сайтам, которая также подходит в тех случаях, когда веб-сервер не должен визуализировать содержимое. You can configure headers and AuthN / AuthZ is fully supported. Статические веб-приложения Azure предоставляют полностью управляемый процесс непрерывной интеграции и непрерывной поставки (CI/CD) из источника GitHub в глобальное развертывание.
Если для подготовки содержимого к просмотру требуется веб-сервер, можно использовать Службу приложений Azure.
Настройка статического веб-сайта
Функции размещения статических веб-сайтов настраиваются в учетной записи хранения и по умолчанию не включены. Чтобы включить размещение статических веб-сайтов, выберите учетную запись хранения. В области навигации слева выберите статический веб-сайт из группы управления данными и нажмите кнопку "Включено". Provide a name for your Index document name. При необходимости можно указать путь к пользовательской странице 404. Наконец, нажмите кнопку "Сохранить ", чтобы сохранить изменения конфигурации.
A blob storage container named $web is created for you within the storage account if it doesn't already exist. Добавьте файлы веб-сайта в контейнер $web , чтобы сделать их доступными через основную конечную точку статического веб-сайта.
Files in the $web container are case-sensitive, served through anonymous access requests and are available only through read operations.
Пошаговые инструкции см. в статье Размещение статического веб-сайта в службе хранилища Azure.
Отправка содержимого
Для отправки содержимого в контейнер $web можно использовать любой из этих инструментов:
- Azure CLI
- Overview of Azure PowerShell (Общие сведения об Azure PowerShell)
- AzCopy
- Обозреватель службы хранилища Azure
- Портал Azure
- Azure Pipelines
- Расширение Visual Studio Code и демонстрация видео Channel 9
Просмотр содержимого
Пользователи могут просматривать содержимое сайта из браузера, используя общедоступный URL-адрес веб-сайта. URL-адрес можно найти с помощью портала Azure, Azure CLI или PowerShell. См. раздел Поиск URL-адреса веб-сайта.
Документ индекса, который вы указываете при включении размещения статических веб-сайтов, появляется, когда пользователи открывают сайт и не указывают конкретный файл (например, https://contosostaticsite.z22.web.core.windows.net
).
Если сервер возвращает ошибку 404, и вы не указали документ об ошибке при включении веб-сайта, то 404 страница по умолчанию возвращается пользователю.
Примечание.
Cross-Origin Resource Sharing (CORS) support for Azure Storage is not supported with static website.
Вторичные конечные точки
Если вы настроили избыточность в дополнительном регионе, вы также можете получить доступ к содержимому веб-сайта с помощью вторичной конечной точки. Данные реплицируются в вторичные регионы асинхронно. Поэтому файлы, доступные на вторичной конечной точке, не всегда синхронизируются с файлами, доступными в основной конечной точке.
Влияние настройки уровня доступа в веб-контейнере
Вы можете изменить уровень анонимного доступа контейнера $web , но это изменение не влияет на основную статическую конечную точку веб-сайта, так как эти файлы обслуживаются с помощью анонимных запросов на доступ. Это означает общий (только для чтения) доступ ко всем файлам.
Хотя основная конечная точка статического веб-сайта не затрагивается, изменение анонимного уровня доступа влияет на основную конечную точку блоб-сервиса.
Например, если изменить уровень анонимного доступа контейнера $web с Частный (без анонимного доступа) на Blob (только анонимный доступ на чтение для BLOB-объектов), тогда уровень анонимного доступа к первичной конечной точке статического веб-сайта https://contosostaticsite.z22.web.core.windows.net/index.html
не изменяется.
However, anonymous access to the primary blob service endpoint https://contosostaticsite.blob.core.windows.net/$web/index.html
does change, enabling users to open that file by using either of these two endpoints.
Отключение анонимного доступа в учетной записи хранения с помощью параметра анонимного доступа учетной записи хранения не влияет на статические веб-сайты, размещенные в этой учетной записи хранения. For more information, see Remediate anonymous read access to blob data (Azure Resource Manager deployments).
Сопоставление личного домена с URL-адресом статического веб-сайта
Вы можете сделать статический веб-сайт доступным через личный домен.
Разрешить HTTP-доступ для личного домена проще, так как служба хранилища Azure изначально поддерживает его. Чтобы включить ПРОТОКОЛ HTTPS, необходимо использовать Azure CDN, так как служба хранилища Azure еще не поддерживает HTTPS с пользовательскими доменами. Пошаговые инструкции приведены в статье Сопоставление личного домена с конечной точкой хранилища BLOB-объектов Azure.
Если учетная запись хранения настроена на требование безопасной передачи по HTTPS, пользователи должны использовать конечную точку HTTPS.
Tip
Рассмотрите возможность размещения домена в Azure. Дополнительные сведения см. в статье Размещение домена в Azure DNS.
Добавление заголовков HTTP
Способы настройки заголовков как части функции статического веб-сайта не предусмотрены. Однако для добавления заголовков и добавления (или перезаписи) значений заголовков можно использовать Azure CDN. См. статью Справочник по стандартному обработчику правил для Azure CDN.
Если вы хотите использовать заголовки для управления кэшированием, ознакомьтесь со статьей Управление режимом кэширования Azure CDN с помощью правил кэширования.
Размещение веб-сайтов в нескольких регионах
Если вы планируете размещать веб-сайт в нескольких географических регионах, мы рекомендуем использовать сеть доставки содержимого для регионального кэширования. Используйте Azure Front Door, если хотите предоставлять различное содержимое в каждом регионе. It also provides failover capabilities. Диспетчер трафика Azure не рекомендуется, если планируется использовать личный домен. Проблемы могут возникать из-за способа проверки имен личных доменов Службой хранилища Azure.
Разрешения
Разрешение, позволяющее включить статический веб-сайт, — это Microsoft.Storage/storageAccounts/blobServices/write или общий ключ. Built in roles that provide this access include Storage Account Contributor.
Цены
Размещение статического веб-сайта можно включить бесплатно. You're billed only for the blob storage that your site utilizes and operations costs. Дополнительные сведения о ценах на хранилище BLOB-объектов Azure см. на странице цен.
Метрики
Вы можете включить метрики на страницах статического веб-сайта. После включения метрик статистика трафика файлов в контейнере $web будет отображаться на панели мониторинга метрик.
Сведения о включении метрик на страницах статического веб-сайта см. в разделе Включение метрик на страницах статического веб-сайта.
Поддержка функций
На поддержку данной функции может повлиять включение протокола Data Lake Storage 2-го поколения, протокола сетевой файловой системы (NFS) 3.0 или протокола SFTP. Если вы включили любую из этих возможностей, см. Поддержка функций Blob Storage в учетных записях хранения Azure, чтобы оценить поддержку этой функции.
Вопросы и ответы
Работает ли брандмауэр службы хранилища Azure со статическим веб-сайтом?
Да. Правила сетевой безопасности учетной записи хранения, включая брандмауэры на основе протоколов IP и виртуальной сети, поддерживаются для конечной точки статического веб-сайта и могут использоваться для защиты веб-сайта.
Поддерживают ли статические веб-сайты службу Microsoft Entra ID?
Нет Статический веб-сайт поддерживает только анонимный доступ на чтение файлов в контейнере $web .
Как использовать личный домен со статическим веб-сайтом?
Можно настроить личный домен со статическим веб-сайтом с помощью сети доставки содержимого (Azure CDN). Azure CDN provides consistent low latencies to your website from anywhere in the world.
Как использовать пользовательский SSL-сертификат с статическим веб-сайтом?
Вы можете настроить настраиваемый SSL-сертификат со статическим веб-сайтом с помощью Azure CDN. Azure CDN provides consistent low latencies to your website from anywhere in the world.
Как добавить настраиваемые заголовки и правила с помощью статического веб-сайта?
You can configure the host header for a static website by using Azure CDN rules engine. Мы хотели бы услышать ваши отзывы здесь.
Почему я получаю сообщение об ошибке HTTP 404 от статического веб-сайта?
Ошибка 404 может произойти, если вы ссылаетесь на имя файла, используя неправильный случай. Например, Index.html
вместо index.html
. File names and extensions in the url of a static website are case-sensitive even though they're served over HTTP. Это также может произойти, если конечная точка Azure CDN еще не подготовлена. Подождите до 90 минут после развертывания новой сети Azure CDN, чтобы распространение завершилось.
Почему корневая папка веб-сайта не перенаправляется на страницу индексов по умолчанию?
На портале Azure откройте страницу конфигурации статического веб-сайта своей учетной записи и найдите имя и расширение, заданные в поле Имя документа индекса. Убедитесь, что это имя совпадает с именем файла, расположенного в контейнере $web учетной записи хранения. File names and extensions in the url of a static website are case-sensitive even though they're served over HTTP.
Why am I unable to access static websites in a storage account when a private endpoint is enabled for the blob in the storage account?
Enabling a private endpoint for blobs in a storage account restricts access to that storage account to only resources within the same virtual network. Consequently, this restriction prevents external access to the static website hosted in the storage account, making the static website content inaccessible. The private endpoint configuration limits access to all storage account resources, including the static website content, to resources within the same virtual network where the private endpoint is enabled. The resolution would be to create a private endpoint specifically for the web. The static website needs a dedicated private end point for the $web domain.
Следующие шаги
- Размещение статического веб-сайта в службе хранилища Azure
- Map a custom domain to an Azure Blob Storage endpoint (Сопоставление личного домена с конечной точкой хранилища BLOB-объектов Azure)
- Функции Azure
- Служба приложений Azure
- Создание первого бессерверного веб-приложения
- Руководство. Размещение домена в Azure DNS