En este instructivo, se describe cómo configurar un bucket de Cloud Storage a fin de alojar un sitio web estático para un dominio que poseas. Las páginas web estáticas pueden incluir tecnologías del lado del cliente, como HTML, CSS y JavaScript. No pueden incluir contenido dinámico como secuencias de comandos del lado del servidor como PHP.
Dado que Cloud Storage no admite dominios personalizados con HTTPS por sí solo, en este instructivo, se usa Cloud Storage con el balanceo de cargas de HTTP(S) para entregar contenido desde un dominio personalizado a través de HTTPS. Si deseas ver las opciones para entregar contenido de un dominio personalizado a través de HTTPS, consulta el tema de solución de problemas relacionado. También puedes usar Cloud Storage para entregar contenido de dominio personalizado a través de HTTP, que no requiere un balanceador de cargas.
Si buscas ejemplos y sugerencias sobre páginas web estáticas, incluido cómo alojar elementos estáticos para un sitio web dinámico, consulta la página de sitios web estáticos.
Objetivos
En este instructivo, se muestra cómo hacer lo siguiente:- Crear un bucket
- Subir y compartir los archivos de tu sitio
- Configurar un balanceador de cargas y un certificado SSL
- Conectar tu balanceador de cargas a tu bucket
- Apuntar tu dominio a tu balanceador de cargas con un registro
A
- Probar el sitio web
Costos
En este instructivo, se usan los siguientes componentes facturables de Google Cloud:
- Cloud Storage
- Cloud Load Balancing
Consulta la sugerencia Supervisa tus cargos a fin de obtener detalles sobre los cargos que se pueden aplicar cuando alojas un sitio web estático y consulta la página de Precios para obtener detalles sobre los costos de Cloud Storage.
Antes de comenzar
- Accede a tu Cuenta de Google.
Si todavía no tienes una cuenta, regístrate para obtener una nueva.
-
En la página del selector de proyectos de Google Cloud Console, selecciona o crea un proyecto de Google Cloud.
-
Comprueba que la facturación esté habilitada en tu proyecto.
- Debes tener un dominio que poseas o administres. Si no tienes un dominio existente, existen muchos servicios a través de los cuales puedes registrar un nuevo dominio, como Google Domains.
En este instructivo, se usa el dominio
example.com
. - Verifica que posees o administras el dominio que usarás. Asegúrate de verificar el dominio de nivel superior, como
example.com
, y no un subdominio, comowww.example.com
.Nota: Si posees el dominio que asocias a un bucket, es posible que ya hayas realizado este paso con anterioridad. Si compraste tu dominio a través de Google Domains, la verificación es automática.
- Debes tener algunos archivos del sitio web que desees entregar. Este instructivo es de mayor utilidad si tienes al menos una página de índice (
index.html
) y una página 404 (404.html
). - Debes tener las siguientes funciones de administración de identidades y accesos: administrador de objetos de almacenamiento y administrador de redes.
Crea un bucket
Para crear un bucket llamado www.example.com
, sigue estos pasos:
Console
- Abre el navegador de Cloud Storage en Google Cloud Console.
Abrir el navegador de Cloud Storage Haz clic en Crear bucket para abrir el formulario de creación de bucket s.
Ingresa la información del bucket y haz clic en Continuar para completar cada paso:
Configura el Nombre de tu bucket, que recomendamos que sea el mismo que el nombre de tu dominio para que el próximo paso sea más fácil. Por ejemplo,
www.example.com
.Selecciona el Tipo de ubicación y la Ubicación del bucket. Por ejemplo, Región y us-east1.
En Clase de almacenamiento, selecciona Standard Storage.
En Control de acceso, selecciona Uniforme.
Haz clic en Crear.
Si se crea de forma correcta, la página Detalles del bucket se abrirá y mostrará el texto “No hay objetos activos en este bucket”.
Consulta Solución de problemas para obtener información detallada sobre las operaciones fallidas en el navegador de Cloud Storage.
gsutil
Usa el comando gsutil mb
:
gsutil mb -b on gs://www.example.com
Si se ejecuta correctamente, el comando mostrará lo siguiente:
Creating gs://www.example.com/...
Ejemplos de código
C++
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para C++.
C#
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para C#.
Go
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para Go.
Java
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para Java.
Node.js
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para Node.js.
PHP
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para PHP.
Python
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para Python.
Ruby
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para Ruby.
API de REST
API de JSON
- Obtén un token de acceso de autorización de OAuth 2.0 Playground. Configura Playground para usar tus propias credenciales de OAuth.
Crea un archivo
.json
que asigne el nombre de tu sitio web a la propiedadname
:{ "name": "www.example.com" }
Usa
cURL
para llamar a la API de JSON. Para www.example.com, usa lo siguiente:curl -X POST --data-binary @website-bucket-name.json \ -H "Authorization: Bearer ya29.AHES6ZRVmB7fkLtd1XTmq6mo0S1wqZZi3-Lh_s-6Uw7p8vtgSwg" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/b?project=my-static-website"
API de XML
- Obtén un token de acceso de autorización de OAuth 2.0 Playground. Configura Playground para usar tus credenciales de OAuth.
Usa
cURL
para llamar a la API de XML a fin de crear un bucket con el nombre de tu sitio web. Para www.example.com, usa lo siguiente:curl -X PUT \ -H "Authorization: Bearer ya29.AHES6ZRVmB7fkLtd1XTmq6mo0S1wqZZi3-Lh_s-6Uw7p8vtgSwg" \ -H "x-goog-project-id: my-static-website" \ "https://storage.googleapis.com/www.example.com"
Sube los archivos de tu sitio
Para agregar los archivos que deseas que tu sitio web entregue al bucket, haz lo siguiente:
Console
- Abre el navegador de Cloud Storage en Google Cloud Console.
Abrir el navegador de Cloud Storage En la lista de bucket s, haz clic en el nombre del bucket que creaste.
Se abrirá la página Detalles del bucket y se seleccionará la pestaña Objetos.
Haz clic en el botón Subir archivos.
En el cuadro de diálogo de archivo, navega al archivo deseado y selecciónalo.
Una vez completada la carga, deberías ver el nombre y la información del archivo en el bucket.
Consulta Solución de problemas para obtener información detallada sobre las operaciones fallidas en el navegador de Cloud Storage.
gsutil
Usa el comando gsutil cp
para copiar archivos a tu bucket. Por ejemplo, para copiar el archivo index.html
desde su ubicación actual Desktop
, haz lo siguiente:
gsutil cp Desktop/index.html gs://www.example.com
Si se ejecuta correctamente, el comando mostrará lo siguiente:
Copying file://Desktop/index.html [Content-Type=text/html]... Uploading gs://www.example.com/index.html: 0 B/2.58 KiB Uploading gs://www.example.com/index.html: 2.58 KiB/2.58 KiB
Ejemplos de código
C++
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para C++.
C#
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para C#.
Go
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para Go.
Java
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para Java.
Node.js
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para Node.js.
PHP
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para PHP.
Python
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para Python.
Usa el método Blob.upload_from_file(), Blob.upload_from_filename() o Blob.upload_from_string() para subir un objeto.Ruby
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para Ruby.
API de REST
API de JSON
- Obtén un token de acceso de autorización de OAuth 2.0 Playground. Configura Playground para usar tus credenciales de OAuth.
Usa
cURL
para llamar a la API de JSON con una solicitud de objetoPOST
. Para la página de índice de www.example.com, haz lo siguiente:curl -X POST --data-binary @index.html \ -H "Content-Type: text/html" \ -H "Authorization: Bearer ya29.AHES6ZRVmB7fkLtd1XTmq6mo0S1wqZZi3-Lh_s-6Uw7p8vtgSwg" \ "https://storage.googleapis.com/upload/storage/v1/b/www.example.com/o?uploadType=media&name=index.html"
API de XML
- Obtén un token de acceso de autorización de OAuth 2.0 Playground. Configura Playground para usar tus credenciales de OAuth.
Usa
cURL
para llamar a la API de XML con una solicitud de objetoPUT
. Para la página de índice de www.example.com, haz lo siguiente:curl -X PUT --data-binary @index.html \ -H "Authorization: Bearer ya29.AHES6ZRVmB7fkLtd1XTmq6mo0S1wqZZi3-Lh_s-6Uw7p8vtgSwg" \ -H "Content-Type: text/html" \ "https://storage.googleapis.com/www.example.com/index.html"
Comparte tus archivos
Sigue estos pasos a fin de que todos los objetos de tu bucket sean legibles para todos en la Internet pública:
Console
- Abre el navegador de Cloud Storage en Google Cloud Console.
Abrir el navegador de Cloud Storage En la lista de bucket s, haz clic en el nombre del bucket que deseas hacer público.
Selecciona la pestaña Permisos cerca de la parte superior de la página.
Haz clic en el botón Agregar miembros.
Aparece el cuadro de diálogo Agregar miembros.
En el campo Miembros nuevos, ingresa
allUsers
.En el menú desplegable Seleccionar una función, selecciona el submenú Cloud Storage y haz clic en la opción Visualizador de objetos de almacenamiento.
Haz clic en Guardar.
Haz clic en Permitir acceso público.
Una vez que se comparte de forma pública, aparece un ícono de vínculo para cada objeto en la columna de acceso público. Puedes hacer clic en este ícono para obtener la URL del objeto.
Consulta Solución de problemas para obtener información detallada sobre las operaciones fallidas en el navegador de Cloud Storage.
gsutil
Usa el comando gsutil iam ch
:
gsutil iam ch allUsers:objectViewer gs://www.example.com
Muestras de código
C++
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para C++.
C#
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para C#.
Java
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para Java.
Python
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para Python.
API de REST
API de JSON
- Obtén un token de acceso de autorización de OAuth 2.0 Playground. Configura Playground para usar tus credenciales de OAuth.
Crea un archivo .json que contenga la siguiente información:
{ "bindings":[ { "role": "roles/storage.objectViewer", "members":["allUsers"] } ] }
Usa
cURL
para llamar a la API de JSON con una solicitud de bucketPUT
:curl -X PUT --data-binary @JSON_FILE_NAME.json \ -H "Authorization: Bearer OAUTH2_TOKEN" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/iam"
Donde:
JSON_FILE_NAME
es el nombre del archivo que creaste en el paso 2.OAUTH2_TOKEN
es el token de acceso que creaste en el paso 1.BUCKET_NAME
es el nombre del bucket cuyos objetos quieres hacer públicos. Por ejemplo,my-bucket
.
API de XML
La API de XML no admite que todos los objetos de un bucket se hagan legibles de forma pública. Usa gsutil o la API de JSON en su lugar, o establece LCA para cada objeto individual.
Para que los objetos individuales de tu bucket sean de acceso público, debes cambiar el modo de Control de acceso de tu bucket a Detallado. En general, hacer que todos los archivos de un bucket sean de acceso público es más fácil y rápido.
Los visitantes reciben un código de respuesta http 403
cuando solicitan la URL de un archivo que no es público o que no existe. Consulta la siguiente sección para obtener información sobre cómo agregar una página de error que use un código de respuesta http 404
.
Recomendado: Asigna páginas especializadas
Puedes asignar un sufijo de página de índice, controlado por la propiedad MainPageSuffix
, y una página de error personalizada, controlada por la propiedad NotFoundPage
. La asignación es opcional, pero, sin una página de índice, no se entrega nada cuando los usuarios acceden a tu sitio de nivel superior, por ejemplo, https://www.example.com
. Para obtener más información sobre las propiedades MainPageSuffix
y NotFoundPage
, consulta Páginas especializadas.
En el siguiente ejemplo, MainPageSuffix
se configura como index.html
y NotFoundPage
como 404.html
:
Console
- Abre el navegador de Cloud Storage en Google Cloud Console.
Abrir el navegador de Cloud Storage En la lista de bucket s, encuentra el bucket que creaste.
Haz clic en el menú Ampliado del bucket (
) asociado al bucket y selecciona Editar configuración del sitio web.
En el cuadro de diálogo de configuración del sitio web, especifica la página principal y la página de error.
Haz clic en Guardar.
Consulta Solución de problemas para obtener información detallada sobre las operaciones fallidas en el navegador de Cloud Storage.
gsutil
Usa el comando gsutil web set
para establecer la propiedad MainPageSuffix
con la marca -m
, además de NotFoundPage
con la marca -e
:
gsutil web set -m index.html -e 404.html gs://www.example.com
Si se ejecuta correctamente, el comando mostrará lo siguiente:
Setting website config on gs://www.example.com/...
Muestras de código
C++
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para C++.
Java
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para Java.
Python
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para Python.
API de REST
API de JSON
- Obtén un token de acceso de autorización de OAuth 2.0 Playground. Configura Playground para usar tus propias credenciales de OAuth.
Crea un archivo
.json
que establezca las propiedadesmainPageSuffix
ynotFoundPage
en un objetowebsite
en las páginas deseadas:{ "website":{ "mainPageSuffix": "index.html", "notFoundPage": "404.html" } }
Usa
cURL
para llamar a la API de JSON con una solicitud de bucketPATCH
. Para www.example.com, usa lo siguiente:curl -X PATCH --data-binary @web-config.json \ -H "Authorization: Bearer ya29.AHES6ZRVmB7fkLtd1XTmq6mo0S1wqZZi3-Lh_s-6Uw7p8vtgSwg" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/b/www.example.com"
API de XML
- Obtén un token de acceso de autorización de OAuth 2.0 Playground. Configura Playground para usar tus propias credenciales de OAuth.
Crea un archivo
.xml
que establezca los elementosMainPageSuffix
yNotFoundPage
en un elementoWebsiteConfiguration
en las páginas deseadas:<WebsiteConfiguration> <MainPageSuffix>index.html</MainPageSuffix> <NotFoundPage>404.html</NotFoundPage> </WebsiteConfiguration>
Usa
cURL
para llamar a la API de XML con una solicitud de bucketPUT
y un parámetro de string de consultawebsiteConfig
. Para www.example.com, usa lo siguiente:curl -X PUT --data-binary @web-config.xml \ -H "Authorization: Bearer ya29.AHES6ZRVmB7fkLtd1XTmq6mo0S1wqZZi3-Lh_s-6Uw7p8vtgSwg" \ https://storage.googleapis.com/www.example.com?websiteConfig
Configura el balanceador de cargas y el certificado SSL
Cloud Storage no admite dominios personalizados con HTTPS por sí solo, por lo que también debes configurar un certificado SSL adjunto a un balanceador de cargas HTTPS para entregar tu sitio web mediante HTTPS. En esta sección, se muestra cómo agregar tu bucket al backend de un balanceador de cargas y cómo agregar un certificado SSL administrado por Google nuevo al frontend del balanceador de cargas.
- Ve a la página Balanceo de cargas en Google Cloud Console.
Ir a la página Balanceo de cargas - En Balanceo de cargas de HTTP(S), haz clic en Iniciar configuración.
- Selecciona De Internet a mis VM y haz clic en Continuar.
- Asígnale un Nombre a tu balanceador de cargas, como
example-lb
.
Configura el backend
- Haz clic en Configuración de backend.
- En el menú desplegable Crear o seleccionar servicios y bucket s de backend, ve al submenú Bucket s de backend y haz clic en la opción Crear un bucket de backend.
- Elige un Nombre para el bucket de backend, como
example-bucket
. - Haz clic en Explorar en Bucket de Cloud Storage.
- Selecciona el bucket
www.example.com
y haz clic en Seleccionar. - Haz clic en Crear.
Configura reglas de host y comparadores de rutas de acceso
Las reglas de host y los comparadores de rutas de acceso son componentes de configuración de un mapa de URL del balanceador de cargas de HTTP(S) externo.
- Haz clic en Reglas de host y de ruta de acceso.
- Deja Modo en la regla simple de host y ruta de acceso predeterminado para el bucket de backend
example-bucket
, que creaste antes.
Configura el frontend
En esta sección, se muestra cómo configurar el protocolo HTTPS y crear un certificado SSL. También puedes seleccionar un certificado existente o subir un certificado SSL autoadministrado.
- Haz clic en Configuración de frontend.
Configura los valores para los siguientes campos:
- Protocolo: HTTPS
- Nivel de servicio de red: Premium
- Versión de IP: IPv4. Si prefieres IPv6, consulta Terminación de IPv6 para obtener información adicional.
Para el campo Dirección IP:
- En el menú desplegable, haz clic en Crear dirección IP.
- En la ventana emergente Reservar una nueva dirección IP estática, ingresa
example-ip
para el Nombre de la dirección IP. - Haz clic en Reservar.
En Puerto, selecciona 443.
En el campo Certificado, selecciona Crear un certificado nuevo. El formulario de creación de certificado aparecerá en un panel. Configura lo siguiente:
- Nombre:
example-ssl
- Crear modo: Crea un certificado administrado por Google.
- Dominios:
www.example.com
. Si deseas entregar el contenido a través de dominios adicionales, como el dominio raízexample.com
, presiona Intro para agregarlos en líneas adicionales. Cada certificado tiene un límite de 100 dominios.
- Nombre:
Haz clic en Crear.
Haz clic en Listo.
Revisa la configuración
- Haz clic en Revisar y finalizar.
- Revisa la Configuración de backend, las Reglas de host y ruta de acceso y la Configuración de frontend.
- Haz clic en Crear.
Es posible que debas esperar unos minutos para que se cree el balanceador de cargas.
Conecta tu dominio al balanceador de cargas
Después de crear el balanceador de cargas, haz clic en el nombre de tu balanceador de cargas: example-lb
. Toma nota de la dirección IP asociada con el balanceador de cargas: por ejemplo, 30.90.80.100
. Para apuntar tu dominio al balanceador de cargas, crea un registro A
mediante tu servicio de registro de dominio. Si agregaste varios dominios a tu certificado SSL, debes agregar un registro A para cada uno, que apunte a la dirección IP del balanceador de cargas. Por ejemplo, a fin de crear registros A
para www.example.com
y example.com
:
NAME TYPE DATA www A 30.90.80.100 @ A 30.90.80.100
Si usas Google Domains, consulta Crea un registro A
o CNAME
para obtener más información.
Recomendado: Supervisa el estado del certificado SSL
Es posible que Google Cloud demore entre 60 y 90 minutos en aprovisionar el certificado y hacer que el sitio esté disponible a través del balanceador de cargas. Para supervisar el estado de tu certificado, haz lo siguiente:
Console
- Ve a la página Balanceo de cargas en Google Cloud Console.
Ir a la página Balanceo de cargas - Haz clic en el nombre de tu balanceador de cargas:
example-lb
. - Haz clic en el nombre del certificado SSL asociado con el balanceador de cargas:
example-ssl
. - Las filas Estado y Estado del dominio muestran el estado del certificado. Ambas deben estar activas a fin de que el certificado sea válido para tu sitio web.
gcloud
Para verificar el estado del certificado, ejecuta el siguiente comando:
gcloud beta compute ssl-certificates describe certificate-name \ --global \ --format="get(name,managed.status)"
Para verificar el estado del dominio, ejecuta el siguiente comando:
gcloud beta compute ssl-certificates describe certificate-name \ --global \ --format="get(managed.domainStatus)"
Para obtener más información sobre el estado de los certificados, consulta Solución de problemas de certificados SSL.
Prueba el sitio web
Cuando el certificado SSL esté activo, verifica que el contenido se entregue desde el bucket ; para ello, ve a https://www.example.com/test.html
, en el que test.html
es un objeto almacenado en un bucket llamado www.example.com
. Si configuras la propiedad MainPageSuffix
, https://www.example.com
va a index.html
.
Realiza una limpieza
Una vez que termines el instructivo Aloja un sitio web estático, puedes realizar una limpieza de los recursos que creaste en Google Cloud a fin de que no consuman tu cuota y no se te cobre por ellos en el futuro. En las siguientes secciones, se describe cómo borrar o desactivar estos recursos.
Borra el proyecto
La manera más fácil de eliminar la facturación es borrar el proyecto que creaste para el instructivo.
Para borrar el proyecto, sigue estos pasos:
- En Cloud Console, ve a la página Administrar recursos.
- En la lista de proyectos, elige el proyecto que quieres borrar y haz clic en Borrar.
- En el diálogo, escribe el ID del proyecto y, luego, haz clic en Cerrar para borrar el proyecto.
Borra el balanceador de cargas y el bucket
Si no deseas borrar todo el proyecto, borra el balanceador de cargas y el bucket que creaste para el instructivo:
- Ve a la página Balanceo de cargas en Google Cloud Console.
Ir a la página Balanceo de cargas - Selecciona la casilla de verificación junto a
example-lb
. - Haz clic en Borrar.
- Selecciona la casilla de verificación junto a los recursos que deseas borrar y el balanceador de cargas, como el bucket
www.example.com
o el certificado SSLexample-ssl
(opcional). - Haz clic en Borrar balanceador de cargas o Borrar el balanceador de cargas y los recursos seleccionados.
¿Qué sigue?
- Obtén información sobre cómo entregar tu sitio web estático mediante HTTP.
- Consulta ejemplos y sugerencias sobre cómo usar buckets para alojar un sitio web estático.
- Visita la sección de solución de problemas para alojar un sitio web estático.
- Obtén información sobre el hosting de activos estáticos para un sitio web dinámico.
- Obtén más información sobre otras soluciones de entrega web de Google Cloud.
- Prueba otros instructivos de Google Cloud que usan Cloud Storage.
Pruébalo tú mismo
Si es la primera vez que usas Google Cloud, crea una cuenta para evaluar el rendimiento de Cloud Storage en situaciones reales. Los clientes nuevos también obtienen $300 en créditos gratuitos para ejecutar, probar y, además, implementar cargas de trabajo.
Probar Cloud Storage gratis