使用自定义域名托管静态网站
应用场景
当企业有大量静态网站需要提供给用户访问,却不想搭建网站服务器时,可以将静态网站托管在OBS桶中,用户可以直接通过OBS桶绑定的自定义域名访问托管的静态网站。
方案架构
- 企业将静态网站托管至OBS桶中,并为OBS桶绑定对外的自定义域名。
- 用户访问自定义域名时,即可直接访问到存储在OBS桶中的静态网站。
在此之前,您可能需要了解一些关于OBS静态网站托管的基本概念及操作,详情请参阅静态网站托管。
方案优势
- 快速构建基于静态内容的网站,简化建站流程,降低运营成本。
- 无需搭建服务器,静态网站轻松上线。
资源和成本规划
本节介绍最佳实践中资源规划情况,包含以下内容:
资源 |
资源说明 |
成本说明 |
---|---|---|
OBS |
需要创建一个OBS桶用于存放静态网站文件,同时在OBS桶上完成静态网站托管配置和自定义域名绑定。 |
OBS的使用涉及以下几项费用: 实际产生的费用与存储的文件大小、用户访问所产生的请求次数和流量大小有关,请根据自己的业务进行预估。 |
静态网站文件 |
免费 |
|
自定义域名 |
用户自己的域名地址,需要绑定在OBS桶上。 按照工信部要求,您绑定自定义域名的桶如果在以下区域,需要提前完成ICP备案。 包括:华北-北京一、华北-北京四、华北-乌兰察布一、华东-上海一、华东-上海二、华南-广州、西南-贵阳一 示例:www.example.com |
准备自定义域名涉及域名注册费用,由域名注册商收取,具体费用以实际为准。 |
CDN |
可选。可以为OBS桶绑定的自定义域名开启CDN加速,以实现更快的资源访问速度。 |
使用CDN加速会产生相应的流量费用,具体请参见CDN加速OBS计费规则。 实际产生的费用与用户访问所产生的流量大小有关,请根据自己的业务进行预估。 |
DNS |
OBS桶绑定的自定义域名需要在DNS上配置CNAME记录。 |
免费 |
本例中,静态网站文件的示例如下:
- index.html的内容为:
<html> <head> <title>Hello OBS!</title> <meta charset="utf-8"> </head> <body> <p>欢迎使用OBS静态网站托管功能</p> <p>这是首页</p> </body> </html>
- error.html的内容为:
<html> <head> <title>Hello OBS!</title> <meta charset="utf-8"> </head> <body> <p>欢迎使用OBS静态网站托管功能</p> <p>这是404错误页面</p> </body> </html>
操作流程
您需要先在OBS管理控制台上创建一个桶,用于存放静态网站资源,并启用该桶的静态网站托管,然后通过OBS提供的绑定自定义域名功能,将自定义域名与新创建的桶绑定,再通过云解析服务(Domain Name Service,DNS)创建和配置域名托管,实现自定义域名访问托管在OBS上的静态网站。具体操作流程如下:
上传静态网站文件
整理好待上传的静态网站文件,在OBS控制台重复执行以下步骤,直至所有的静态网站文件都上传至准备工作创建的桶中。
在支持批量上传的区域,OBS控制台每次最多支持100个文件同时上传,总大小不超过5GB,如果网站文件较多,建议使用OBS Browser+上传,具体操作步骤请参见使用OBS Browser+上传文件或文件夹。
- 单击待操作的桶名称,进入桶对象页面。
- 单击“上传对象”,系统将弹出如下所示对话框。
图3 上传对象
- 添加待上传的文件。
- 不可加密上传静态网站文件。
- 存储类别建议选择“标准存储”。如果静态网站文件的存储类别为“归档存储”,则需要先恢复才能被访问,具体恢复步骤请参见恢复归档存储文件。
- 网站首页文件(index.html)和404错误页面(error.html),需要存放在桶的根目录下。
- 单击“上传”完成文件上传。
配置静态网站托管
上传完静态网站文件后,您需要执行以下步骤,将当前桶设置为静态网站托管模式。
您也可以将整个静态网站直接重定向至另一个桶或域名,配置操作请参见重定向请求。
- 单击桶名称,进入桶对象页面后单击“数据管理 > 静态网站托管”。
- 单击“配置静态网站托管”按钮。
- 在弹出的对话框中,开启静态网站托管并选择“配置到当前桶”,将“默认首页”配置为数据规划中的index.html,将“默认404错误页面”配置为数据规划中的error.html,如下所示。
图4 配置静态网站托管
您也可以根据业务需求配置重定向规则,实现网站内容重定向,具体操作请参见配置静态网站托管。
- 单击“确定”。
配置自定义域名
- 单击桶名称进入“对象”页面,在左侧导航栏选择“域名管理”。
- 单击页面上方的“配置自定义域名”,如果没有绑定自定义域名也可以在页面下方的配置自定义域名卡片中单击“配置自定义域名”,在“用户域名”输入“www.example.com”,如下所示。
图5 配置自定义域名
- 单击“确定”。
- 根据页面提示,支持单击“一键解析”,或手动完成解析CNAME,单击右下角的“我已了解”,如图6所示。
华为云域名支持一键解析添加CNAME记录;非华为云域名不支持一键解析,请用户自行配置解析规则。
- (可选)配置CDN加速。
CDN加速需收费,具体请参见CDN价格说明。
- (可选)如果开启了CDN加速,需要按照以下步骤配置CDN加速。
- 在已绑定的自定义域名操作列,单击“管理CDN加速”。
- 在打开的CDN控制台页面,单击域名,然后再单击“高级配置”,进入域名高级配置页面。
- 在“高级配置”中的“HTTP header配置”中,添加“Content-Disposition”响应头,取值为“inline”。
配置加速域名
- 单击桶名称进入“对象”页面,在左侧导航栏选择“域名管理”。
- 单击页面上方的“配置加速域名”,弹出“配置加速域名”页面,如图7所示。
- 选择“服务范围”,选择“业务类型”,设置“加速域名”,单击“确定加速”。
- 根据页面提示,支持单击“一键解析”,或手动完成解析CNAME,单击右下角的“我已了解”,如图8所示。
华为云域名支持一键解析添加CNAME记录;非华为云域名不支持一键解析,请用户自行配置解析规则。
- 支持使用“自动刷新缓存”功能,如图9所示,在域名管理列表,找到需要创建自动刷新缓存的域名卡片,在“自动刷新缓存”的右侧单击“配置”,单击开启“自动刷新缓存”开关,出现配置页面。
- 配置自动刷新策略参数,完成后单击“确定配置”。
表2 事件触发器参数说明 参数
说明
事件
自动刷新策略生效的事件类型。目前,OBS支持以下事件类型:
- ObjectCreated:表示所有创建对象的操作,包含Put、Post、Copy对象以及合并段。
- Put:Put上传对象事件。
- Post:Post上传对象事件。
- Copy:使用Copy方法复制对象事件。
- CompleteMultipartUpload:表示合并分段任务。
- ObjectRemoved:表示删除对象的操作。
- Delete:删除对象事件。
前缀
自动刷新策略生效对象的前缀。
说明:当前不支持目录刷新,前缀不能以“/”结尾。
后缀
自动刷新策略生效对象的后缀。
说明:当前不支持目录刷新,后缀不能以“/”结尾。
IAM委托
在使用OBS的部分特性时,需要使用IAM委托功能给OBS授予相关的权限,以委托OBS处理您的数据。
- 如果开启了CDN加速,需要按照以下步骤配置CDN源站信息。
- 在已绑定的自定义域名操作列,单击“管理CDN加速”。
- 在打开的CDN控制台页面,单击域名,进入域名基本配置页面。
- 在“源站配置”区域单击“编辑”按钮,在弹出的“修改源站信息”弹框中,勾选“静态网站托管”。
- 单击“确定”。
- 在“高级配置”中添加“Content-Disposition”响应头,取值为“inline”。
使能CDN加速后,根据托管的静态网站类型选择网站加速、文件下载加速或点播加速。CDN加速需收费,具体请参见CDN价格说明。
创建和配置域名托管
为了方便对您的自定义域名和静态网站统一管理,实现业务全面云化,您可以直接在华为云提供的云解析服务(Domain Name Service,DNS)上托管您的自定义域名。托管完成后,后续域名解析的管理都可以在云解析服务上进行,包括:管理记录集、管理反向解析、设置域名泛解析等等。
您也可以直接在域名注册商域名解析中,根据是否开启CDN加速来添加一条别名记录。
- 如果绑定自定义域名时开启了CDN加速,则添加的别名记录需指向CDN提供的加速域名。例如:域名“www.example.com”开启CDN加速后的加速域名为“www.example.com.c.cdnhwc1.com”,则需要在域名注册商添加一条值为“www.example.com CNAME www.example.com.c.cdnhwc1.com”的记录。
- 如果绑定自定义域名时未开启CDN加速,则添加的别名记录需指向桶的访问域名。例如:桶“example”所处区域“华北-北京一”,则需要在域名注册商添加一条值为“www.example.com CNAME example.obs.cn-north-1.myhuaweicloud.com”的记录。
使用云解析服务创建和配置域名托管的操作步骤如下:
- 创建公网域名。
在云解析服务中创建公网域名,使用准备工作中注册的根域名“example.com”作为创建公网域名。详细的创建方法请参见配置网站解析章节中的“添加域名”部分内容。
- 添加别名记录。
在云解析服务中为托管域名子域名“www.example.com”添加记录集,配置该子域名别名指向OBS的静态网站托管域名。在添加别名记录时参数配置如下:
- 主机记录:输入“www”。
- 记录类型:选择“CNAME – 将域名指向另外一个域名”。
- 线路类型:选择“全网默认”。
- TTL(秒):保持默认。
- 记录值:需指向的域名。如果绑定自定义域名时没有开启CDN加速,此处填写OBS的桶的静态网站托管域名;如果开启了CDN加速,此处填写CDN提供的加速域名(即CNAME)。
详细的创建方法请参见增加CNAME类型记录集。
- 在域名注册商处修改域名解析服务器地址。
在域名注册商处,将该根域名对应的NS记录中域名解析服务器地址修改为云解析服务(DNS)服务器的地址,具体地址为云解析服务中该公网域名记录集中NS记录的值字段内容信息。
详细的更改域名解析服务器地址的方法请参见配置网站解析章节中的“更改域名的DNS服务器”部分。
更改后的域名解析服务器地址将于48小时内生效,具体生效时间请以域名注册商处的说明为准。
验证
- 在浏览器中输入访问地址:www.example.com,验证能否访问到配置的默认首页,如图10所示。
- 在浏览器中输入一个桶中不存在的静态文件访问地址,例如:www.example.com/imgs,验证能否访问到配置的404错误页面,如图11所示。
由于浏览器缓存等原因,您可能需要清除浏览器缓存后才能查看到预期效果。
(后续操作)更新静态网站
后续如果需要对网站某个静态文件(如:图片、音乐、html文件、css文件等)进行更新,您可以重新上传该静态文件。但需要注意的是,默认情况下,在OBS同一路径下新上传的文件会覆盖OBS上已存在的同名文件。为避免文件覆盖的情况,您可以选择启用OBS的多版本控制功能。利用多版本控制,可以保留静态文件的多个版本,使您更方便地检索和还原各个版本,在意外操作或应用程序故障时快速恢复数据。