Estos contenidos se han traducido de forma automática para su comodidad, pero Huawei Cloud no garantiza la exactitud de estos. Para consultar los contenidos originales, acceda a la versión en inglés.
Cómputo
Elastic Cloud Server
Bare Metal Server
Auto Scaling
Image Management Service
Dedicated Host
FunctionGraph
Cloud Phone Host
Huawei Cloud EulerOS
Redes
Virtual Private Cloud
Elastic IP
Elastic Load Balance
NAT Gateway
Direct Connect
Virtual Private Network
VPC Endpoint
Cloud Connect
Enterprise Router
Enterprise Switch
Global Accelerator
Gestión y gobernanza
Cloud Eye
Identity and Access Management
Cloud Trace Service
Resource Formation Service
Tag Management Service
Log Tank Service
Config
Resource Access Manager
Simple Message Notification
Application Performance Management
Application Operations Management
Organizations
Optimization Advisor
Cloud Operations Center
Resource Governance Center
Migración
Server Migration Service
Object Storage Migration Service
Cloud Data Migration
Migration Center
Cloud Ecosystem
KooGallery
Partner Center
User Support
My Account
Billing Center
Cost Center
Resource Center
Enterprise Management
Service Tickets
HUAWEI CLOUD (International) FAQs
ICP Filing
Support Plans
My Credentials
Customer Operation Capabilities
Partner Support Plans
Professional Services
Análisis
MapReduce Service
Data Lake Insight
CloudTable Service
Cloud Search Service
Data Lake Visualization
Data Ingestion Service
GaussDB(DWS)
DataArts Studio
IoT
IoT Device Access
Otros
Product Pricing Details
System Permissions
Console Quick Start
Common FAQs
Instructions for Associating with a HUAWEI CLOUD Partner
Message Center
Seguridad y cumplimiento
Security Technologies and Applications
Web Application Firewall
Host Security Service
Cloud Firewall
SecMaster
Data Encryption Workshop
Database Security Service
Cloud Bastion Host
Data Security Center
Cloud Certificate Manager
Blockchain
Blockchain Service
Servicios multimedia
Media Processing Center
Video On Demand
Live
SparkRTC
Almacenamiento
Object Storage Service
Elastic Volume Service
Cloud Backup and Recovery
Storage Disaster Recovery Service
Scalable File Service
Volume Backup Service
Cloud Server Backup Service
Data Express Service
Dedicated Distributed Storage Service
Contenedores
Cloud Container Engine
SoftWare Repository for Container
Application Service Mesh
Ubiquitous Cloud Native Service
Cloud Container Instance
Bases de datos
Relational Database Service
Document Database Service
Data Admin Service
Data Replication Service
GeminiDB
GaussDB
Distributed Database Middleware
Database and Application Migration UGO
TaurusDB
Middleware
Distributed Cache Service
API Gateway
Distributed Message Service for Kafka
Distributed Message Service for RabbitMQ
Distributed Message Service for RocketMQ
Cloud Service Engine
EventGrid
Dedicated Cloud
Dedicated Computing Cluster
Aplicaciones empresariales
ROMA Connect
Message & SMS
Domain Name Service
Edge Data Center Management
Meeting
AI
Face Recognition Service
Graph Engine Service
Content Moderation
Image Recognition
Data Lake Factory
Optical Character Recognition
ModelArts
ImageSearch
Conversational Bot Service
Speech Interaction Service
Huawei HiLens
Developer Tools
SDK Developer Guide
API Request Signing Guide
Terraform
Koo Command Line Interface
Distribución de contenido y cómputo de borde
Content Delivery Network
Intelligent EdgeFabric
CloudPond
Soluciones
SAP Cloud
High Performance Computing
Servicios para desarrolladores
ServiceStage
CodeArts
CodeArts PerfTest
CodeArts Req
CodeArts Pipeline
CodeArts Build
CodeArts Deploy
CodeArts Artifact
CodeArts TestPlan
CodeArts Check
Cloud Application Engine
aPaaS MacroVerse
KooPhone
KooDrive

Alojamiento de sitio web estático

Actualización más reciente 2024-09-18 GMT+08:00

Precauciones

Por motivos de seguridad y cumplimiento, utilizar el alojamiento de sitios web estático a través del nombre de dominio de OBS predeterminado (nombre de dominio de bucket o nombre de dominio de sitio web estático) será prohibido por OBS. Cuando utiliza dicho nombre de dominio para acceder a páginas web a través de un navegador, no se mostrará ningún contenido, en su lugar, el contenido se descargará como un archivo adjunto.

Esta prohibición entrará en vigor en diferentes regiones en los dos momentos siguientes:

January 1, 2022: CN North-Beijing1, CN North-Beijing4, CN East-Shanghai1, CN East-Shanghai2y CN South-Guangzhou

March 25, 2022: CN-Hong Kong, AP-Bangkok, AP-Singapore, AF-Johannesburg, LA-Mexico City1, LA-Mexico City2, LA-Sao Paulo1 y LA-Santiago

Sin embargo, todavía se puede realizar el alojamiento de un sitio web estático a través de un nombre de dominio definido por el usuario y se puede obtener una vista previa del contenido de la página web. Para obtener más información, consulte ¿Cómo previsualizo objetos en OBS a través de un navegador?

Escenarios

Puede usar OBS para alojar su sitio web estático, para el que también puede configurar un documento de índice, un documento de error y una dirección de página. Puede cargar los archivos de contenido del sitio web estático en el bucket en OBS y configurar un permiso de lectura para usuarios anónimos para estos archivos y, a continuación, configurar el modo de alojamiento de sitio web estático para que el bucket aloje los sitios web estáticos en OBS.

Los sitios web estáticos contienen páginas estáticas y algunos scripts que pueden ejecutarse en clientes, como JavaScript y Flash. A diferencia de los sitios web estáticos, los sitios dinámicos dependen de los servidores para procesar los scripts, entre ellos los scripts PHP, JSP y ASP.NET. OBS no admite scripts que se ejecutan en servidores.

Figura 1 Alojamiento de sitio web estático

Después de habilitar el alojamiento de sitios web estático, puede acceder a los objetos de un bucket utilizando cualquiera de los siguientes métodos:

  • Gestión de recursos: puede acceder a los objetos de un bucket a través de un nombre de dominio común. Puede usar API o SDK y nombres de dominio OBS predeterminados con endpoints contenidos para realizar operaciones comunes en los bucket y objetos, como cargar, descargar, eliminar y enumerar.
  • Sitio web estático: puede acceder a objetos en un bucket mediante un nombre de dominio específico. En este modo, la visualización de la página de índice, páginas de error y páginas solicitadas se implementa de acuerdo con las reglas de alojamiento de nombres de dominio estáticos configuradas.

La configuración del alojamiento web estático tiene efecto en dos minutos. Una vez que surta efecto, puede acceder a recursos estáticos utilizando los siguientes nombres de dominio de acceso:

https://bucketname.OBS static website hosting domain name/Object name
http://bucketname.OBS static website hosting domain name/Object name
NOTA:

Evite usar (.) de períodos en el nombre del bucket de destino. De lo contrario, pueden producirse errores en el certificado de autenticación de cliente cuando los usuarios usan HTTPS para el acceso.

Para permitir que sus clientes accedan al contenido en el nodo del terminal del sitio web, debe hacer que todo su contenido sea público y accesible. Puede utilizar políticas de bucket o ACL en objetos para conceder permisos.

En la siguiente tabla se enumeran las diferencias entre el modo de administración de recursos y el modo de sitio web estático.

Principal diferencia

Gestión de recursos

Sitio web estático

Control de acceso

Tanto el contenido público como el privado son compatibles.

Solo se admite el contenido público.

Procesamiento de mensajes de error

Se devuelve una respuesta de error en formato XML.

Se devuelve un documento HTML.

Soporte de redirección

N/A

Se admite la redirección a nivel de objeto y a nivel de bucket.

Solicitud soportada

Se admiten operaciones en todos los bucket y objetos.

Solo se admiten las solicitudes de GET y HEAD en objetos.

Respuesta a solicitudes de GET y HEAD de nivel raíz de bucket

Se devuelve una lista de claves de objeto en un bucket.

Se devuelve el archivo de índice especificado en la configuración.

Descripción de redirección

Al utilizar el alojamiento de sitios web estático, puede configurar la redirección para redirigir solicitudes específicas o todas.

Si se cambia la estructura, la dirección o la extensión del nombre de archivo de un sitio web, los usuarios no podrán acceder al sitio web utilizando la dirección anterior. (como la dirección guardada en la carpeta de favoritos) y se devolverá el mensaje de error 404. En este caso, puede configurar la redirección para que el sitio web redirija las solicitudes de acceso de los usuarios a la página especificada en lugar de devolver la página de error 404.

Las configuraciones típicas incluyen:

  • Redirigir todas las solicitudes a otro sitio web.
  • Redirigir solicitudes específicas basadas en reglas de redirección.

Configurar el alojamiento de sitios web estáticos

Descripción general

Si desea usar un bucket para alojar sitios web estáticos, agregue la configuración del sitio web al bucket. La configuración incluye la siguiente información:

Documento de índice

Cuando ingresa una URL como http://example.com, no está solicitando una página específica. En este caso, el servidor web proporcionará una página predeterminada que contiene el directorio que almacena el contenido del sitio web solicitado. Esta página predeterminada se denomina documento de índice, y en la mayoría de los casos se denomina index.html. Cuando configura un bucket para el alojamiento de sitios web, debe especificar un documento de índice. Cuando se envía una solicitud al dominio raíz o a cualquier subcarpeta, OBS devuelve este documento de índice.

Documento de error

Si se produce un error, OBS devuelve un documento de error HTML. Para errores 4XX, puede proporcionar su propio documento de error personalizado o proporcionar otras guías a los usuarios en este documento.

Redirección de todas las solicitudes

Si el dominio raíz es example.com y necesita responder a las solicitudes de http://example.com y http://www.example.com, puede crear dos los bucket llamados example.com y www.example.com. A continuación, puede conservar el contenido del sitio web en un solo bucket (como example.com) y configurar el otro bucket para redirigir todas las solicitudes al bucket de example.com.

Redirección basada en condiciones avanzadas

Puede redirigir las solicitudes basándose en el nombre o prefijo del objeto específico de la solicitud, o basándose en el código de respuesta. Por ejemplo, suponga que elimine o cambie el nombre de un objeto de un bucket. Puede agregar una regla de enrutamiento que redirija las solicitudes a otros objetos.

El formato sintáctico es el siguiente al establecer reglas de redirección de solicitudes específicas:

<WebsiteConfiguration> 
    <IndexDocument> 
        <Suffix>index.html</Suffix></IndexDocument> 
    <ErrorDocument> 
        <Key>SomeErrorDocument.html</Key> 
    </ErrorDocument> 
    <RoutingRules> 
              RoutingRules……
    </RoutingRules> 
</WebsiteConfiguration>

El formato sintáctico de RoutingRules es el siguiente. El contenido entre corchetes es opcional.

<RoutingRules> = 
    <RoutingRules> 
        <RoutingRule>...</RoutingRule> 
        [<RoutingRule>...</RoutingRule> ...] 
    </RoutingRules> 

<RoutingRule> = 
    <RoutingRule> 
        [ <Condition>...</Condition> ] 
        <Redirect>...</Redirect> 
    </RoutingRule> 

<Condition> = 
    <Condition>  
        [ <KeyPrefixEquals>...</KeyPrefixEquals> ] 
        [ <HttpErrorCodeReturnedEquals>...</HttpErrorCodeReturnedEquals> ] 
    </Condition> 

<Redirect> = 
    <Redirect> 
        [ <HostName>...</HostName> ] 
        [ <Protocol>...</Protocol> ] 
        [ <ReplaceKeyPrefixWith>...</ReplaceKeyPrefixWith> ] 
        [ <ReplaceKeyWith>...</ReplaceKeyWith> ][ 
        <HttpRedirectCode>...</HttpRedirectCode> ] 
    </Redirect>

Para los elementos de solicitud necesarios para redirigir todas las solicitudes enviadas a un sitio web específico y para establecer reglas de redirección, consulte Configuración de alojamiento estático de sitios web para un bucket

Ejemplos:

Ejemplo 1: Modificación del prefijo de nombre de objeto para la redirección

Suponga que el bucket contenga los siguientes objetos:

index.html

docs/article1.html

docs/article2.html

Usted decide cambiar el nombre de la carpeta de docs/ a documents/. Después de la modificación, la solicitud de un objeto con el prefijo /docs debe ser redirigida a otro con documents/. Por ejemplo, la solicitud de docs/article1.html debe redirigirse a documents/article1.html.

En este caso, puede agregar las siguientes reglas de enrutamiento a la configuración del sitio web:

 <RoutingRules> 
    <RoutingRule> 
    <Condition> 
      <KeyPrefixEquals>docs/</KeyPrefixEquals> 
    </Condition> 
    <Redirect> 
      <ReplaceKeyPrefixWith>documents/</ReplaceKeyPrefixWith> 
    </Redirect> 
    </RoutingRule> 
  </RoutingRules>

Ejemplo 2: Redirección de solicitudes enviadas a carpetas eliminadas a una página especificada

Supongamos que ha eliminado la carpeta images/, es decir, que ha eliminado todos los objetos cuyo prefijo de nombre de objeto es images/. Puede agregar una regla de enrutamiento que redirija las solicitudes de todos los objetos cuyo prefijo es images/ a la página denominada folderdeleted.html.

<RoutingRules> 
    <RoutingRule> 
    <Condition> 
       <KeyPrefixEquals>images/</KeyPrefixEquals> 
    </Condition> 
    <Redirect> 
      <ReplaceKeyWith>folderdeleted.html</ReplaceKeyWith> 
    </Redirect> 
    </RoutingRule> 
  </RoutingRules>

Ejemplo 3: Redireccionamiento cuando se producen errores HTTP

Supongamos que el objeto solicitado no se encuentra y que la solicitud debe ser redirigida a www.example.com. Puede agregar reglas de redirección para que los visitantes del sitio puedan redirigir a www.example.com cuando se devuelva el código de estado HTTP 404 (no encontrado). En el ejemplo siguiente también se inserta el prefijo de nombre de objeto report-404/ en la redirección. Por ejemplo, si solicita la página ExamplePage.html y causa un error HTTP 404, la solicitud será redirigida al informe de página report-404/ExamplePage.html en el www.example.com. Si no hay regla de enrutamiento y se produce el error 404 de HTTP, se devuelve el documento de error especificado en la configuración.

<RoutingRules> 
    <RoutingRule> 
    <Condition> 
      <HttpErrorCodeReturnedEquals>404</HttpErrorCodeReturnedEquals > 
    </Condition> 
    <Redirect> 
      <HostName>www.example.com</HostName> 
      <ReplaceKeyPrefixWith>report-404/</ReplaceKeyPrefixWith> 
    </Redirect> 
    </RoutingRule> 
  </RoutingRules>

Soporte de documentos de índice

Un documento de índice es una página web que se devuelve cuando se envía una solicitud a la raíz de un sitio o a cualquier subcarpeta. Por ejemplo, si el usuario introduce http://www.example.com en el navegador, el usuario no solicita ninguna página específica. En este caso, OBS proporciona documentos de índice, que a veces se denominan páginas predeterminadas.

Cuando configure su bucket como sitio web, proporcione el nombre del documento de índice. Debe cargar el objeto con este nombre y configurarlo para que sea público y accesible.

La barra diagonal final en la URL raíz es opcional. Por ejemplo, si configura un sitio web index.html como un documento de índice, index.html se devolverá a cualquiera de las siguientes URL:

http://bucketname.obs-website.example.com/
http://bucketname.obs-website.example.com

En OBS, los objetos se almacenan horizontalmente en los bucket. No proporciona ninguna organización jerárquica como sistema de archivos en un equipo. Puede crear una jerarquía lógica utilizando el nombre del objeto que representa la estructura de carpetas. Por ejemplo, considere un bucket con tres objetos y los siguientes nombres de objeto.

  • sample1.jpg
  • photos/2006/Jan/sample2.jpg
  • photos/2006/Feb/sample3.jpg

Aunque no se almacenan como ninguna organización jerárquica física, puede inferir la siguiente estructura lógica de carpetas a partir del nombre del objeto.

  • El objeto sample1.jpg se encuentra en el nivel raíz del bucket.
  • El objeto sample2.jpg se encuentra en la subcarpeta photos/2006/Jan.
  • El objeto sample3.jpg se encuentra en la subcarpeta photos/2006/Feb.

Soporte de documento de error personalizado

Tabla 1 enumera el subconjunto del código de respuesta HTTP devuelto por OBS cuando se produce un error.

Tabla 1 Lista de códigos de error de OBS

Código de error HTTP

Descripción

301 Moved Permanently

Cuando un usuario envía una solicitud a un punto de conexión de OBS, se devuelve una respuesta 301 Moved Permanently.

302 Found

Cuando OBS recibe una solicitud de clave x que no termina con una barra diagonal, busca el objeto cuyo nombre de clave es x. Si no se encuentra el objeto, OBS determina que la solicitud se envía para la subcarpeta x. A continuación, OBS redirige la solicitud agregando una barra al final de la solicitud, y devuelve 302 Found.

304 Not Modified

Los usuarios de OBS solicitan los encabezados If-Modified-Since y If-Unmodified-Since para determinar si el objeto solicitado es el mismo que la copia almacenada en caché en el cliente. Si los objetos son los mismos, el nodo terminal de sitio web devuelve una respuesta 304 Not Modified .

403 Forbidden

Cuando la solicitud de usuario se convierte en un objeto que no puede leerse públicamente, la respuesta del nodo terminal de sitio web incluye 403 Forbidden. El propietario del objeto debe usar políticas de bucket o ACL para que el objeto sea público y accesible.

404 Not Found

La respuesta del nodo terminal del sitio web contiene 404 Not Found debido a las siguientes razones:

  • OBS determina que se hace referencia a una clave de objeto no válida en la dirección URL del sitio web.
  • La OBS determina que la solicitud es para un documento de índice que no existe.
  • El bucket especificado en la URL no existe.
  • El bucket especificado en la URL existe pero no está configurado como sitio web.

Puede crear documentos personalizados devueltos para 404 Not Found. Asegúrese de que el documento se ha cargado en el bucket configurado como sitio web y de que la configuración de alojamiento del sitio web se ha establecido para usar el documento.

500 Service Error

Cuando se produce un error de servidor interno, la respuesta del nodo de terminal de sitio web contiene 500 Service Error.

503 Service Unavailable

Cuando OBS determina que necesita reducir la frecuencia de solicitud, la respuesta del nodo terminal de sitio web contiene 503 Service Unavailable.

Permisos requeridos para el acceso al sitio web

Cuando configuras un bucket como sitio web, debes hacer público y accesible el objeto que se va a proporcionar. Para realizar esta operación, debe escribir una política de bucket que conceda permisos de GetObject a todos. Si el objeto solicitado por el usuario no existe en el nodo terminal del sitio web, OBS devuelve el código de respuesta HTTP 404 Not Found. Si el objeto existe pero no concede permiso de lectura para el objeto, el nodo de terminal del sitio web devuelve el código de respuesta HTTP 403 Access Denied. Puede utilizar este código de respuesta para inferir si existe un objeto concreto. Si no necesita esta función, no habilite el soporte del sitio web del bucket.

NOTA:

En el escenario de alojamiento de sitios web estáticos, los usuarios anónimos deben tener acceso al archivo de sitio web estático alojado. Durante su acceso al archivo alojado, se incurrirán en tarifas por el tráfico de Internet saliente y las solicitudes.

La política de bucket de ejemplo siguiente otorga a cada persona el permiso para tener acceso a los objetos de una carpeta especificada. Para obtener más información acerca de las políticas de bucket, consulte Política de bucket.

{ 
   "Statement":[{ 
    "Sid":"PublicReadGetObject", 
      "Effect":"Allow", 
      "Principal": {"ID":"*"}, 
      "Action":["GetObject"], 
      "Resource":["example-bucket/*"  ] 
    } 
  ] 
}
AVISO:

Una política de bucket solo se aplica a los objetos propiedad de un propietario de bucket. Si el bucket contiene objetos que no son propiedad del propietario del bucket, utilice las ACL de objetos para conceder el permiso de lectura pública a los objetos.

Puede usar políticas de bucket o ACL de objetos para conceder permisos de lectura pública a los objetos. Para utilizar las ACL para hacer que los objetos sean públicos y accesibles, puede conceder el permiso de lectura a todos, como se muestra en los siguientes elementos de autorización. Puede agregar el elemento de autorización a las ACL de objeto. Para obtener más información sobre la gestión de ACL, consulte ACL.

<Grant> 
  <Grantee> 
    <Canned>Everyone</Canned> 
  </Grantee> 
  <Permission>READ</Permission> 
</Grant>

Funciones relacionadas

Función

Descripción de la relación

Referencia

CORS

De forma predeterminada, los sitios web estáticos alojados en un bucket OBS solo pueden responder a las solicitudes de acceso de sitios web en el mismo dominio. Puede configurar el uso compartido de recursos de origen cruzado (CORS) para el bucket de modo que se pueda acceder a los sitios web estáticos mediante solicitudes entre dominios.

CORS

Configuración del nombre de dominio definido por el usuario

OBS le permite usar un nombre de dominio definido por el usuario para acceder a sitios web estáticos alojados en un bucket de OBS. Puede utilizar el nombre de dominio original para acceder al sitio web sin modificar el código del sitio web.

Configuración del nombre de dominio definido por el usuario

Uso de un nombre de dominio definido por el usuario para alojar un sitio web estático

Validación de URL

OBS utiliza la validación de URL para evitar que sus sitios web alojados en un bucket OBS sean robados. OBS verifica las URL basadas en el campo de referencia en el encabezado HTTP.

Validación de URL

Cómo usarlo

Puede utilizar OBS Console, las API o los SDK para configurar CORS.

Herramienta

Referencia

OBS Console

Configurar el alojamiento de sitios web estáticos

SDKs

OBS admite kits de desarrollo de software (SDK) en varios idiomas. Para obtener más información, consulte la guía para desarrolladores correspondiente en la página de Descripción de los SDK.

API

Configuración de Alojamiento Estático de Sitios Web para un Bucket

Utilizamos cookies para mejorar nuestro sitio y tu experiencia. Al continuar navegando en nuestro sitio, tú aceptas nuestra política de cookies. Descubre más

Comentarios

Comentarios

Comentarios

0/500

Seleccionar contenido

Enviar el contenido seleccionado con los comentarios