基于OSS搭建云上个人博客
阿里云OSS,可以托管静态网站,在这个实验中,我们将以Hexo静态博客为例,向您演示如何通过Hexo博客框架快速生成静态博客,以及如何使用Hexo插件将生成的静态博客自动部署至阿里云OSS。
场景简介
本实验主要介绍如何在一台配置了Alibaba Cloud Linux 3操作系统的ECS实例(云服务器)和消息队列RocketMQ版实例,实现基础消息收发功能。
背景知识
本场景主要涉及以下云产品和服务:
云服务器(Elastic Compute Service,简称ECS)是阿里云提供的性能卓越、稳定可靠、弹性扩展的IaaS(Infrastructure as a Service)级别云计算服务。一台云服务器ECS实例等同于一台虚拟服务器,内含CPU、内存、操作系统、网络配置、磁盘等基础的组件。云服务器ECS免去了您采购IT硬件的前期准备,让您像使用水、电、天然气等公共资源一样便捷、高效地使用服务器,实现计算资源的即开即用和弹性伸缩。阿里云ECS持续提供创新型服务器,解决多种业务需求,助力您的业务发展。
阿里云对象存储OSS(Object Storage Service)是一款海量、安全、低成本、高可靠的云存储服务,可提供99.9999999999%(12个9)的数据持久性,99.995%的数据可用性。多种存储类型供选择,全面优化存储成本。
前提条件
云起实验室将在您的账号下开通本次实操资源,资源按量付费,需要您自行承担本次实操的云资源费用。
本实验预计一个小时产生费用0.6元。如果您调整了资源规格、使用时长,或执行了本方案以外的操作,可能导致费用发生变化,请以控制台显示的实际价格和最终账单为准。
进入实操前,请确保阿里云账号满足以下条件:
创建实验资源
在实验页面,勾选我已阅读并同意《阿里云云起实践平台服务协议》和我已授权阿里云云起实践平台创建、读取及释放实操相关资源后,单击开始实操。
创建资源需要5分钟左右的时间,请您耐心等待。
在云产品资源列表,您可以查看本场景涉及的云产品资源信息。
安全设置
资源创建完成后,为了保护您阿里云主账号上资源的安全,请您重置云服务器ECS的登录密码和设置安全组端口。
重置云服务器ECS的登录密码。
在云产品资源列表的ECS云服务器区域,单击管理。
在实例详情页签的基本信息区域,单击重置密码。
在重置实例密码对话框中,设置新密码和确认密码,重置密码的方式选择在线重置密码,配置SSH密码登录策略选择开启,单击确认修改。
返回如下结果,表示ECS实例root用户的登录密码重置成功。
设置安全组端口。
在云产品资源列表的安全组区域,单击管理。
在访问规则区域的入方向中,添加SSH(22)、HTTP(80)、4000端口。
重要添加端口时,授权对象建议选择您的本机IP地址。
实验环境准备
安装Git。
在云产品资源列表的ECS云服务器区域,单击远程连接。输入ECS登录的用户名和密码进行登录。
执行以下命令进行Git的安装。
yum install git -y
安装完成后,可以执行下方命令验证Git的版本。
git --version
如果 Git 的版本号可以成功展示,说明 Git 已经成功安装。
安装Node.js。
在终端中,通过执行下方的命令,安装Node.js。
yum install nodejs -y
安装完成后,可以进行node和npm的版本信息验证。
说明如果两者的版本信息都能成功展示,说明Node.js已经成功安装。
验证node的版本信息。
node -v
验证npm的版本信息。
npm -v
利用Hexo生成静态博客
Hexo是一个快速、简洁且高效的博客框架。Hexo使用Markdown(或其他标记语言)解析文章,在几秒内,即可利用靓丽的主题生成静态网页。
安装Hexo。
在终端中,可以通过执行下方的命令,全局安装Hexo客户端。
npm install -g hexo-cli --registry=https://registry.npmmirror.com
安装完成后,可以执行下方命令验证Hexo的版本及其依赖信息。
说明如果 Hexo 的版本及其依赖信息可以成功展示,说明hexo已经成功安装。
hexo -v
初始化博客项目。
在终端中执行下方命令,初始化博客项目,同时会安装博客项目所需的依赖包。
cd ~ && hexo init blog --no-clone
初始化成功的终端展示如下。
安装 hexo-deployer-cos 插件。
在终端中通过以下命令下载安装hexo-deployer-cos插件。
cd ~/blog && npm install hexo-deployer-ali-oss --save
自动生成博客的静态文件。
在终端中执行下方命令,生成静态文件。
hexo g
本地部署博客
启动博客。执行以下命令,进入blog项目文件夹,启动博客项目。
cd ~/blog/ && hexo s
验证博客是否成功启动。
在云产品资源列表的ECS云服务器区域,复制公网IP。
打开浏览器,输入ECS的公网IP地址加端口号4000,访问网站。
项目界面的展示效果类似于下图,则证明博客启动成功。
基于阿里云OSS部署静态博客
创建阿里云AccessKey
重要在本实验完成后,若不再使用,建议参考实验手册步骤及时删除阿里云AccessKey。
前往AccessKey管理。
在不建议使用云账号AccessKey对话框,阅读创建主账号AccessKey的风险,如果必须要创建主账号AccessKey,则勾选我确认知晓云账号AccessKey安全风险,然后单击继续使用云账号AccessKey。
在AccessKey页面,单击创建AccessKey。
根据界面提示完成安全验证。
在创建云账号AccessKey对话框,再次阅读创建主账号AccessKey的风险及主账号AccessKey使用限制,如果确定要创建主账号AccessKey,则勾选我确认知晓云账号AccessKey安全风险,然后单击继续使用云账号AccessKey。
在创建AccessKey对话框,保存AccessKey ID和AccessKey Secret,然后勾选我已保存好AccessKey Secret,最后单击确定。
修改存储桶配置。
进入OSS控制台。
在对象存储OSS管理控制台左侧导航栏中,单击Bucket列表。
在Bucket列表页面,单击Bucket名称。
说明您可以在云产品资源列表中查看到您的OSS的Bucket名称。
进入Bucket
,将Bucket权限改为公共读写。进入Bucket授权策略,单击新增授权。
在新增授权对话框中,修改如下参数后,单击确定。
授权资源:整个Bucket
授权用户:所有账号
授权操作:
条件:访问方式设置为HTTP
将静态博客上传至阿里云OSS 中。
切换至命令行,按
Ctrl+C
退出博客启动。执行如下命令,编辑 _config.yml文件。
vim _config.yml
按
shift+G
跳转到文件末尾最后一行,按i键进入编辑模式,复制下方代码,自行替换参数值,粘贴并覆盖原 deploy 选项的代码。说明冒号一定要使用英文冒号,冒号前不能有空格,冒号后必须有一个空格,这是 yml 的固定写法。
type:默认ali-oss,无需修改。
region:指代地域,例如:华东1(杭州)对应的值即:oss-cn-hangzhou,您可在官方说明文档OSS地域和访问域名中可以查看。
accessKeyId、accessKeySecret:上一步创建AccessKey时,自行保存的AccessKey Id、AccessKey Secret。
bucket:为创建OSS Bucket时的Buekct名称。
deploy: type: ali-oss region: yourRegion accessKeyId: yourSecretId accessKeySecret: yourSecretKey bucket: yourBucket
完成编辑后,按
esc
输入:wq
,保存退出。
执行以下命令重新生成静态文件。
hexo g -d
生成结果如下。
创建文章
创建文章markdown模板。
执行以下命令进入blog项目目录下,创建新文章。
cd ~/blog && hexo new first
示例图如下。
命令执行完毕后,会在source/_posts中会生成一个markdown文件,本条命令会生成一个“first.md”的文件。
编写 markdown 文件。
打开first.md文件,编写生成的文章模板。
vim source/_posts/first.md
进入编写界面后,自动生成的markdown文件如图所示。
在下方编辑自己想要编辑的内容,支持 markdown 语法,例子如图所示。
按
esc
输入:wq
,保存退出。
启动博客查看文章。
执行以下命令,进入blog项目文件夹,启动博客项目。
cd ~/blog/ && hexo s
切换至浏览器,输入ECS的公网IP地址加端口号4000,访问网站,可以看到博客页面展示了刚刚创建的文章。
重新生成静态文件并部署至阿里云OSS。
切换至命令行,按
Ctrl+C
退出博客启动。执行命令,重新生成静态文件并部署至阿里云OSS。
cd ~/blog && hexo g -d
执行结果如图所示。
实验验证
验证上传阿里云OSS是否成功。
回到Bucket详情页,单击存储桶左侧列表中的文件列表,如果文件列表中包含静态博客生成的静态文件,则说明静态文件通过插件自动上传至阿里云OSS成功,示例图如下。
清理资源
在完成实验后,如果无需继续使用资源,请根据以下步骤,先删除相关资源后,再结束实操,否则资源会持续运行产生费用。
删除阿里云AccessKey。
前往AccessKey管理。
在不建议使用云账号AccessKey对话框,阅读创建主账号AccessKey的风险,如果必须要创建主账号AccessKey,则勾选我确认知晓云账号AccessKey安全风险,然后单击继续使用云账号AccessKey。
在AccessKey页面,找到目标AccessKey,单击右侧操作列下的禁用。
在禁用对话框中,单击禁用。
在AccessKey页面,找到目标AccessKey,单击右侧操作列下的删除。
在删除对话框中,输入当前AccessKey的ID,单击删除。
删除相关资源后,单击结束实操。在结束实操对话框中,单击确定。
在完成实验后,如果需要继续使用资源,您可跳过释放相关资源的操作,直接单击结束实操。在结束实操对话框中,单击确定。请随时关注账户扣费情况,避免发生欠费。