静态网站示例和提示

本页面显示了使用存储分区托管静态网站的示例和提示。

网站配置示例

以下情景演示了当您尝试使用各种网址访问对象时存储分区向您传送的对象。

包含三个对象的存储分区

假设一个名为 www.example.com 的存储分区已被配置为具有以下设置和文件的网站:

  • MainPageSuffix =“index.html”
  • NotFoundPage =“404.html”
  • 该存储分区包含三个公开共享的对象:“index.html”、“404.html”和“dir/index.html”。

下表显示了为所选网址传送的内容:

请求的网址 传送的内容 HTTP 响应代码
http://www.example.com
http://www.example.com/ http://www.example.com/index.html
对象“index.html”。 200
http://www.example.com/hello 对象“404.html”。 404
http://www.example.com/dir/index.html 对象“dir/index.html”。 200
http://www.example.com/dir 对象“dir/index.html”。 301
http://www.example.com/dir/ 对象“dir/index.html”(假设 /dir/ 不存在零字节对象) 200
零字节空对象(如果 /dir/ 存在此对象)。如需移除此零字节对象,请参阅问题排查主题 301

包含两个对象的存储分区

假设一个名为 www.example.com 的存储分区已被配置为具有以下设置和文件的网站:

  • MainPageSuffix =“main.html”
  • NotFoundPage =“404.html”
  • 该存储分区包含两个公开共享的对象:“main.html”和“404.html”。

下表显示了为所选网址传送的内容:

请求的网址 传送的内容 HTTP 响应代码
http://www.example.com
http://www.example.com/
对象“main.html”。 200
http://www.example.com/index.html 对象“404.html”。 404

如果对象被公开共享,您也可以使用以下网址查看该对象:

http://storage.googleapis.com/[BUCKET_NAME]/[OBJECT_NAME]

例如,index.html 对象的网址为:

http://storage.googleapis.com/www.example.com/index.html

如需详细了解如何使用可公开访问的数据,请参阅访问公开数据

有关使用配置为网站的存储分区的提示

使用存储分区托管静态网站时,请牢记以下提示。

添加子网域

假设您还希望通过一个与服务 www.example.com 内容的存储分区不同的存储分区来服务 test.example.com 的内容。为此,请执行以下操作:

  1. 创建新存储分区 test.example.com。由于您已经验证了网域 example.com,您可以创建存储分区来支持子网域,且无需进行另外的验证。

  2. 为子网域添加新的 CNAME 记录

    NAME                  TYPE     DATA
    test                  CNAME    c.storage.googleapis.com.
    

设置缓存参数

您可以配置 Cache-Control 元数据,控制如何或者是否缓存网站资源。通常,仅为所有匿名用户可访问的对象设置缓存控制元数据,此要求适用于作为静态网站的一部分从 Cloud Storage 存储分区传送的任何对象。

除非指定明确的缓存控制设置,否则 Cloud Storage 会将 3600 秒的缓存控制设置应用于所有匿名用户可访问的对象。如需了解有关设置对象元数据(例如 Cache-Control)的说明,请参阅查看和修改元数据

API 行为

MainPageSuffixNotFoundPage 网站配置仅用于通过 CNAME 端点Cloud Load Balancing 传入 Cloud Storage 的请求。例如,向 www.example.com 发出的请求会显示索引页面,但向 storage.googleapis.com/www.example.com 发出的等效请求则不会。

因此,发送到 Cloud Storage 网域(例如 storage.googleapis.com/www.example.com)的请求的 API 行为将会被保留。例如,您可以像在任何其他存储分区中一样继续列出 www.example.com 存储分区中的对象。对于 www.example.com 存储分区,您收到的对象列表包括 404.htmlindex.html

托管动态网站的静态资源

对于已在 Google App EngineGoogle Compute Engine 之类的服务中托管的动态网站,您可以使用 Cloud Storage 托管其静态资源。在存储分区中托管静态资源(如图像或 JavaScript 文件)的部分好处包括:

  • Cloud Storage 的行为基本上类似于内容分发网络 (CDN),您无需承担任何工作,因为在默认情况下,可公开读取的对象缓存在 Cloud Storage 网络中。

  • 使用 Cloud Storage 访问内容的带宽费用通常更低。

  • 从 Cloud Storage 传送静态内容时,Web 服务器的负载减轻。

您还可以使用缓存控制请求标头控制可公开读取的静态资源的缓存,例如停用缓存或设置缓存生命周期。如需了解详情,请参阅设置缓存参数

托管动态网站的静态资源时,您无需像静态网站那样创建 CNAME 记录并指向具有相同名称的存储分区。例如,您可能拥有一个名为 www_example_com_assets 的存储分区(已将适当的资源配置为公开共享),然后使用 Cloud Storage 网域访问这些资源。例如,假设您公开共享了存储分区 www_example_com_assets 中的 JavaScript 文件 library.js,就可以使用 http://storage.googleapis.com/www_example_com_assets/library.js 访问该资源。

监控您的存储空间费用

如果您正在从配置为静态网站的存储分区传送资源,或者从存储分区为 Cloud Storage 之外托管的动态网站传送静态资源,您应监控包含该存储分区的项目产生的费用。传送内容时,会因存储内容、使用网络和执行检索操作而产生 Cloud Storage 费用。如需了解详情,请参阅“Cloud Storage 价格”页面

价格页面上的简单价格示例可视为低流量静态网站用例的近似值。您可以使用价格计算器根据您的预计使用情况来估算费用。

Cloud Platform 新用户可能有资格申请免费试用

如果您是现有 Cloud Platform 用户,则可以在结算页面上详细了解项目费用。

问题排查

有关使用为传送静态网站内容而配置的存储分区的常见问题,请参阅问题排查

后续步骤

此页内容是否有用?请给出您的反馈和评价:

发送以下问题的反馈:

此网页
Cloud Storage
需要帮助?请访问我们的支持页面