Hospedaje de sitios web estáticos en Azure StorageStatic website hosting in Azure Storage

Puede proporcionar contenido estático (HTML, CSS, JavaScript y archivos de imagen) directamente desde un contenedor de almacenamiento llamado $web.You can serve static content (HTML, CSS, JavaScript, and image files) directly from a storage container named $web. El hospedaje de contenido en Azure Storage permite usar arquitecturas sin servidor que incluyen Azure Functions y otros servicios de plataforma como servicio (PaaS).Hosting your content in Azure Storage enables you to use serverless architectures that include Azure Functions and other Platform as a service (PaaS) services. El hospedaje de sitios web estáticos de Azure Storage es una opción excelente en los casos en los que no es necesario que un servidor web represente contenido.Azure Storage static website hosting is a great option in cases where you don't require a web server to render content.

Las aplicaciones web estáticas de App Service es una excelente alternativa al hospedaje de sitios web estáticos de Azure Storage y también es adecuado en los casos en los que no es necesario que un servidor web represente contenido.App Service Static Web Apps is a great alternative to Azure Storage static website hosting and is also appropriate in cases where you don't require a web server to render content. Las aplicaciones web estáticas de App Service proporcionan un flujo de trabajo de integración continua y entrega continua (CI/CD) totalmente administrado desde el origen de GitHub a la implementación global.App Service Static Web Apps provide you with a fully managed continuous integration and continuous delivery (CI/CD) workflow from GitHub source to global deployment.

Si necesita un servidor web para representar contenido, puede usar Azure App Service.If you need a web server to render content, you can use Azure App Service.

Nota

Las características que se describen en este artículo ya están disponibles para las cuentas que tienen un espacio de nombres jerárquico.The features described in this article are now available to accounts that have a hierarchical namespace. Para revisar las limitaciones, consulte el artículo Características de Blob Storage disponibles en Azure Data Lake Storage Gen2.To review limitations, see the Blob storage features available in Azure Data Lake Storage Gen2 article.

Nota

Asegúrese de crear una cuenta de almacenamiento estándar de uso general v2.Make sure to create a general-purpose v2 Standard storage account . Los sitios web estáticos no están disponibles en ningún otro tipo de cuenta de almacenamiento.Static websites aren't available in any other type of storage account.

Configuración de un sitio web estáticoSetting up a static website

El hospedaje de sitios web estáticos es una característica que permite habilitar la cuenta de almacenamiento.Static website hosting is a feature that you have to enable on the storage account.

Para habilitar el hospedaje de sitios web estáticos, seleccione el nombre del archivo predeterminado y, opcionalmente, proporcione una ruta de acceso a una página 404 personalizada.To enable static website hosting, select the name of your default file, and then optionally provide a path to a custom 404 page. Si aún no existe un contenedor de almacenamiento de blobs denominado $web en la cuenta, se creará uno.If a blob storage container named $web doesn't already exist in the account, one is created for you. Agregue los archivos del sitio a ese contenedor.Add the files of your site to this container.

Para obtener instrucciones detalladas, consulte Hospedaje de sitios web estáticos en Azure Storage.For step-by-step guidance, see Host a static website in Azure Storage.

Métrica de métricas de sitios web estáticos de Azure Storage

Los archivos del contenedor $web distinguen mayúsculas de minúsculas, se proporcionan mediante solicitudes de acceso anónimo y solo están disponibles a través operaciones de lectura.Files in the $web container are case-sensitive, served through anonymous access requests and are available only through read operations.

Carga de contenidoUploading content

Puede usar cualquiera de estas herramientas para cargar contenido en el contenedor $web:You can use any of these tools to upload content to the $web container:

Visualización de contenidoViewing content

Los usuarios pueden ver contenido del sitio desde un explorador usando la dirección URL pública del sitio web.Users can view site content from a browser by using the public URL of the website. Puede buscar la dirección URL usando Azure Portal, CLI de Azure o PowerShell.You can find the URL by using the Azure portal, Azure CLI, or PowerShell. Consulte cómo Búsqueda de la dirección URL del sitio web.See Find the website URL.

Si el servidor devuelve un error 404 y no se ha especificado un documento de error al habilitar el sitio web, se devuelve una página 404 predeterminada al usuario.If the server returns a 404 error, and you have not specified an error document when you enabled the website, then a default 404 page is returned to the user.

Nota

El uso compartido de recursos entre orígenes (CORS) para Azure Storage no se admite para los sitios web estáticos.Cross-Origin Resource Sharing (CORS) support for Azure Storage is not supported with static website.

Códigos regionalesRegional codes

La dirección URL del sitio contiene un código regional.The URL of your site contains a regional code. Por ejemplo, la dirección URL https://contosoblobaccount.z22.web.core.windows.net/ contiene el código regional z22.For example the URL https://contosoblobaccount.z22.web.core.windows.net/ contains regional code z22.

Aunque el código debe permanecer en la dirección URL, solo es para uso interno y no se tiene que usar de ninguna otra manera.While that code must remain in the URL, it is only for internal use, and you won't have to use that code in any other way.

El documento del índice que especifique al habilitar el hospedaje de sitios web estáticos aparece cuando los usuarios abren el sitio y no especifican un archivo concreto (por ejemplo, https://contosoblobaccount.z22.web.core.windows.net).The index document that you specify when you enable static website hosting, appears when users open the site and don't specify a specific file (For example: https://contosoblobaccount.z22.web.core.windows.net).

Puntos de conexión secundariosSecondary endpoints

Si configura la redundancia en una región secundaria, también puede tener acceso al contenido del sitio web mediante un punto de conexión secundario.If you set up redundancy in a secondary region, you can also access website content by using a secondary endpoint. Dado que los datos se replican en las regiones secundarias de forma asincrónica, los archivos que están disponibles en el punto de conexión secundario no están siempre sincronizados con los archivos que están disponibles en el punto de conexión principal.Because data is replicated to secondary regions asynchronously, the files that are available at the secondary endpoint aren't always in sync with the files that are available on the primary endpoint.

Impacto de la configuración del nivel de acceso público del contenedor webImpact of the setting the public access level of the web container

Puede modificar el nivel de acceso público del contenedor $web, lo cual no afecta al punto de conexión principal del sitio web estático porque estos archivos se proporcionan a través de solicitudes de acceso anónimo.You can modify the public access level of the $web container, but this has no impact on the primary static website endpoint because these files are served through anonymous access requests. Eso significa acceso público (de solo lectura) a todos los archivos.That means public (read-only) access to all files.

En la siguiente captura de pantalla se muestra la configuración del nivel de acceso público en Azure Portal:The following screenshot shows the public access level setting in the Azure portal:

Captura de pantalla que muestra cómo establecer el nivel de acceso público en el portal

Aunque el punto de conexión principal del sitio web estático no se ve afectado, un cambio en el nivel de acceso público afecta al punto de conexión principal de Blob service.While the primary static website endpoint is not affected, a change to the public access level does impact the primary blob service endpoint.

Por ejemplo, si cambia el nivel de acceso público del contenedor $web de Privado (sin acceso anónimo) a Blob (acceso anónimo de lectura solo para blobs) , el nivel de acceso público al punto de conexión principal del sitio web estático https://contosoblobaccount.z22.web.core.windows.net/index.html no cambia.For example, if you change the public access level of the $web container from Private (no anonymous access) to Blob (anonymous read access for blobs only), then the level of public access to the primary static website endpoint https://contosoblobaccount.z22.web.core.windows.net/index.html doesn't change.

Sin embargo, el acceso público al punto de conexión principal de Blob service https://contosoblobaccount.blob.core.windows.net/$web/index.html cambia de privado a público.However, the public access to the primary blob service endpoint https://contosoblobaccount.blob.core.windows.net/$web/index.html does change from private to public. Ahora los usuarios pueden abrir ese archivo mediante cualquiera de estos dos punto de conexión.Now users can open that file by using either of these two endpoints.

Deshabilitar el acceso público en una cuenta de almacenamiento no afecta a los sitios web estáticos que se hospedan en ella.Disabling public access on a storage account does not affect static websites that are hosted in that storage account. Para más información, consulte Configuración del acceso de lectura público anónimo a contenedores y blobs.For more information, see Configure anonymous public read access for containers and blobs.

Asignación de un dominio personalizado a una dirección URL de un sitio web estáticoMapping a custom domain to a static website URL

Puede hacer que el sitio web estático esté disponible a través de un dominio personalizado.You can make your static website available via a custom domain.

Es más fácil habilitar el acceso HTTP para un dominio personalizado, ya que Azure Storage lo admite de forma nativa.It's easier to enable HTTP access for your custom domain, because Azure Storage natively supports it. Para habilitar HTTPS, tendrá que usar Azure CDN porque Azure Storage no admite de forma nativa HTTPS con dominios personalizados.To enable HTTPS, you'll have to use Azure CDN because Azure Storage does not yet natively support HTTPS with custom domains. Para obtener instrucciones pormenorizadas, consulte Asignación de un dominio personalizado a un punto de conexión de Azure Blob Storage.see Map a custom domain to an Azure Blob Storage endpoint for step-by-step guidance.

Si la cuenta de almacenamiento está configurada para requerir la transferencia segura a través de HTTPS, los usuarios deben utilizar el punto de conexión HTTPS.If the storage account is configured to require secure transfer over HTTPS, then users must use the HTTPS endpoint.

Sugerencia

Consider la posibilidad de hospedar el dominio en Azure.Consider hosting your domain on Azure. Para más información, consulte Hospedaje de un dominio en Azure DNS.For more information, see Host your domain in Azure DNS.

Adición de encabezados HTTPAdding HTTP headers

No hay forma de configurar encabezados como parte de la característica de sitio web estático.There's no way to configure headers as part of the static website feature. Sin embargo, puede usar Azure CDN para agregar encabezados y anexar (o sobrescribir) sus valores.However, you can use Azure CDN to add headers and append (or overwrite) header values. Consulte Referencia del motor de reglas estándar de Azure CDN.See Standard rules engine reference for Azure CDN.

Si quiere usar encabezados para controlar el almacenamiento en caché, consulte Control del comportamiento del almacenamiento en caché de Azure CDN con reglas de almacenamiento en caché.If you want to use headers to control caching, see Control Azure CDN caching behavior with caching rules.

Hospedaje de sitios web de varias regionesMulti-region website hosting

Si planea hospedar un sitio web en varias zonas geográficas, se recomienda usar Content Delivery Network para el almacenamiento en caché regional.If you plan to host a website in multiple geographies, we recommend that you use a Content Delivery Network for regional caching. Use Azure Front Door para proporcionar contenido diferente en cada región.Use Azure Front Door if you want to serve different content in each region. También proporciona funcionalidad de conmutación por error.It also provides failover capabilities. No se recomienda Azure Traffic Manager si tiene previsto usar un dominio personalizado.Azure Traffic Manager is not recommended if you plan to use a custom domain. Pueden surgir problemas debido a cómo Azure Storage comprueba los nombres de dominio personalizados.Issues can arise because of how Azure Storage verifies custom domain names.

PreciosPricing

Puede habilitar el hospedaje de sitios web estáticos de forma gratuita.You can enable static website hosting free of charge. Se le factura solo por el almacenamiento de blobs que el sitio usa y por los costes de las operaciones.You're billed only for the blob storage that your site utilizes and operations costs. Para obtener más información acerca de los precios de Azure Blob Storage, consulte la página de precios de Azure Blob Storage.For more details on prices for Azure Blob Storage, check out the Azure Blob Storage Pricing Page.

MétricasMetrics

Puede habilitar métricas en páginas de sitios web estáticos.You can enable metrics on static website pages. Después de habilitar las métricas, las estadísticas de tráfico de los archivos en el contenedor $web aparecen en el panel de métricas.Once you've enabled metrics, traffic statistics on files in the $web container are reported in the metrics dashboard.

Para habilitar métricas en las páginas de su sitio web estático, consulte Enable metrics on static website pages (Habilitación de métricas en páginas de sitios web estáticos).To enable metrics on your static website pages, see Enable metrics on static website pages.

Pasos siguientesNext steps