更新时间:2024-08-13 GMT+08:00

静态网站托管

应用场景

OBS服务允许在桶上托管静态网站,支持索引页、错误页展示和页面跳转。您可以将静态网站文件上传至OBS的桶中,并对这些文件赋予匿名用户可读权限,然后将该桶配置成静态网站托管模式,就可以实现在OBS上托管静态网站了。

操作步骤

  1. 创建OBS存储桶,并配置静态网站托管。

    1. 创建main.tf文件,输入以下内容,并保存在当前的执行目录中。
      resource "huaweicloud_obs_bucket" "mywebsite" {
        bucket = "mywebsite"
        website {
          index_document = "index.html"
          error_document = "error.html"
        }
      }
    2. 运行 terraform init 进行初始化。
    3. 运行 terraform plan 查看资源。
    4. 确认资源无误后,运行 terraform apply 开始创建。
    5. 运行 terraform show 可以查看已创建的OBS桶。

  2. 配置桶策略,允许匿名用户访问对象。

    在main.tf文件中,输入以下内容:

    # granting the Read-Only permission to anonymous users
    resource "huaweicloud_obs_bucket_policy" "policy" {
      bucket = huaweicloud_obs_bucket.mywebsite.bucket
      policy = <<POLICY
    {
      "Statement": [
        {
          "Sid": "AddPerm",
          "Effect": "Allow",
          "Principal": {"ID": "*"},
          "Action": ["GetObject"],
          "Resource": "mywebsite/*"
        } 
      ]
    }
    POLICY
    }

  3. 上传静态网站文件。

    1. 在当前目录下编辑index.html和error.html文件。
    2. 在main.tf文件,输入以下内容,将文件上传至OBS桶。
      # put index.html
      resource "huaweicloud_obs_bucket_object" "index" {
        bucket = huaweicloud_obs_bucket.mywebsite.bucket
        key    = "index.html"
        source = "index.html"
      }
      # put error.html
      resource "huaweicloud_obs_bucket_object" "error" {
        bucket = huaweicloud_obs_bucket.mywebsite.bucket
        key    = "error.html"
        source = "error.html"
      }
    3. 运行 terraform plan 查看资源。
    4. 确认资源无误后,运行 terraform apply 开始上传。

  4. 结果验证。

    通过浏览器访问 https://mywebsite.obs-website.cn-north-4.myhuaweicloud.com,即可访问index.html。这里mywebsite为OBS桶名称,cn-north-4为存储桶所属的region。

表1 参数说明

资源名称

参数名称

参数说明

huaweicloud_obs_bucket

bucket

(必填)OBS存储桶名称

  • 约束:在OBS中必须是全局唯一的,包含3到63个字符,允许小写字母、数字、连字符(-)和点号(.),不能以句点(.)或连字符(-)开始或结束,不能包含两个连续的句点(.)或相邻的句点(.)和连字符(-),不能是IP地址。

website

index_document

(必填)访问静态网站时返回的索引页面,即首页。

error_document

(可选)当访问错误的静态网站路径时,返回的404错误页面。

routing_rules

(可选)静态网站重定向规则

huaweicloud_obs_bucket_policy

bucket

(必填)存储桶名称

policy_format

(可选)策略格式,支持obs和s3两种类型格式,默认为obs类型

policy

(必填)策略内容,请参考Policy格式

huaweicloud_obs_bucket_object

bucket

(必填)存储桶名称

key

(必填)对象名称

source

(可选)待上传对象的源文件路径

后续操作

您可以将自己的域名与OBS桶访问域名进行绑定,可以实现通过自定义域名访问存储在OBS中的文件。同时也可以配置CDN服务实现加速功能。请参考使用自定义域名托管静态网站