Skip to content

阿里云云服务综合实践期末大作业

一、基础任务(60分):Ghost博客网站搭建

任务要求

严格按照阿里云官方教程《在运行Ubuntu的实例上搭建Ghost博客网站》完整执行所有步骤,完成Ghost博客系统的部署与初始化。搭建Ghost博客网站-阿里云官方教程

官方教程执行要求

  1. 完整完成官方教程中全部章节(域名除外)
  2. 按照官方教程要求创建ECS实例、安装Node.js、MySQL、Nginx、Ghost-CLI
  3. 按照官方教程步骤完成Ghost的安装与配置
  4. 完成Ghost后台初始化,创建至少2篇包含图片的测试文章

重要操作提示

  • 当官方教程提示输入博客URL时,输入 http://你的ECS实例公网IP地址
  • 当官方教程提示设置SSL时,选择不设置SSL
  • 最终通过 http://ECS实例公网IP地址 访问博客前台,通过 http://ECS实例公网IP地址/ghost 访问博客后台

评分标准(按截图评分)

评分项提交要求
nginx -v
mysql -V
node -v
三张截图,三个软件安装成功后版本
网站前台正常访问截图截图需包含浏览器地址栏(显示ECS公网IP)和完整的博客首页
网站后台正常登录截图截图需包含浏览器地址栏和Ghost后台管理界面
测试文章展示截图截图需显示包含图片的文章详情页,图片需正常显示

二、必选任务(30分):OSS静态资源存储+基础云监控

第一部分:OSS静态资源存储(15分)

步骤1:创建OSS Bucket(阿里云控制台操作)

  1. 登录阿里云官网,进入"对象存储OSS"控制台
  2. 点击左侧菜单栏的"Bucket列表",然后点击右上角的"创建Bucket"按钮
  3. 在弹出的创建页面中,依次填写以下信息:
    • Bucket名称:自定义一个名称(只能包含小写字母、数字和短横线,全局唯一)
    • 地域必须选择与你的ECS实例完全相同的地域(例如:华东1(杭州))
    • 存储类型:选择"标准存储"
    • 读写权限必须选择"公共读"(否则上传的图片无法被访问)
    • 其他所有选项(版本控制、日志存储、加密等)全部保持默认
  4. 点击"确定"完成Bucket创建

步骤2:创建RAM用户并获取访问密钥(阿里云控制台操作)

  1. 点击阿里云控制台右上角的头像,选择"访问控制RAM"
  2. 点击左侧菜单栏的"身份管理"→"用户",然后点击"创建用户"按钮
  3. 在创建用户页面中:
    • 登录名称:自定义(例如:ghost-oss-user)
    • 显示名称:自定义(例如:Ghost博客OSS用户)
    • 访问方式只勾选"编程访问",不要勾选"控制台访问"
  4. 点击"确定",此时页面会显示 AccessKey IDAccessKey Secret
    • ⚠️ 重要提醒:这两个值只会显示一次,请立即复制保存到记事本中,关闭页面后无法再次查看
  5. 回到用户列表页面,找到刚刚创建的用户,点击右侧的"添加权限"按钮
  6. 在添加权限页面中:
    • 左侧"选择权限"搜索框中输入 AliyunOSSFullAccess
    • 点击搜索结果中的 AliyunOSSFullAccess,将其添加到右侧"已选择权限"列表
    • 点击"确定"完成权限添加

步骤3:修改Ghost配置文件(ECS服务器操作)

  1. 使用SSH工具远程连接到你的ECS实例
  2. 输入以下命令进入Ghost安装目录:
    bash
    cd /var/www/ghost
  3. 输入以下命令打开Ghost的生产环境配置文件:
    bash
    sudo nano config.production.json
  4. 你会看到一个JSON格式的配置文件,找到 "url": "http://你的IP地址", 这一行
  5. 在这一行的下一行,粘贴以下配置内容(注意保持JSON格式的缩进):
    json
    "storage": {
      "active": "s3",
      "s3": {
        "accessKeyId": "替换为你刚才保存的AccessKey ID",
        "secretAccessKey": "替换为你刚才保存的AccessKey Secret",
        "region": "替换为你的Bucket地域代码",
        "bucket": "替换为你创建的Bucket名称",
        "endpoint": "https://替换为你的Bucket地域代码.aliyuncs.com",
        "forcePathStyle": false,
        "acl": "public-read"
      }
    },

    地域代码示例:如果你的Bucket在华东1(杭州),地域代码就是 oss-cn-hangzhou,endpoint就是 https://oss-cn-hangzhou.aliyuncs.com

  6. Ctrl+O 保存文件,然后按 Enter 确认文件名
  7. Ctrl+X 退出nano编辑器
  8. 输入以下命令重启Ghost服务,使配置生效:
    bash
    ghost restart
  9. 等待服务重启完成(约10-20秒)

步骤4:验证配置是否成功

  1. 打开浏览器,访问 http://你的ECS公网IP/ghost 登录后台
  2. 点击"写文章",新建一篇测试文章
  3. 点击文章编辑器中的"添加图片"按钮,上传一张本地图片
  4. 图片上传完成后,右键点击图片,选择"在新标签页中打开图片"
  5. 查看新标签页的地址栏,如果URL以 https://你的Bucket名称.oss-xxx.aliyuncs.com/ 开头,说明配置成功

第二部分:云监控基础告警(15分)

步骤1:进入云监控控制台

  1. 登录阿里云官网,进入"云监控"控制台
  2. 点击左侧菜单栏的"主机监控"→"实例监控"
  3. 在实例列表中找到你的ECS实例

步骤2:创建CPU使用率告警规则

  1. 点击你的ECS实例右侧的"告警规则"按钮
  2. 点击右上角的"创建告警规则"按钮
  3. 在创建页面中填写以下信息:
    • 规则名称:CPU使用率过高告警
    • 监控指标:CPU使用率
    • 统计周期:5分钟
    • 统计方法:平均值
    • 阈值:> 85%
    • 持续周期:1个周期
    • 通知方式:点击"添加通知对象",选择"短信/邮件通知",输入你的邮箱地址
  4. 点击"确定"完成创建

步骤3:创建磁盘使用率告警规则

  1. 重复上述步骤2,创建第二条告警规则
    • 规则名称:磁盘使用率过高告警
    • 监控指标:磁盘使用率
    • 阈值:> 90%
    • 其他配置与CPU告警规则相同

步骤4:测试告警通知

  1. 在告警规则列表中,找到刚刚创建的任意一条规则
  2. 点击右侧的"测试"按钮
  3. 检查你的短信/邮箱,确认收到了阿里云发送的告警短信/邮件

评分标准(按截图评分)

评分项提交要求
OSS Bucket创建成功截图截图需显示Bucket列表及你创建的Bucket名称
RAM用户权限配置截图截图需显示已添加的 AliyunOSSFullAccess 权限
OSS存储验证截图截图需包含浏览器地址栏,显示图片URL为OSS地址
云监控告警规则截图截图需显示已创建的两条告警规则
告警短信/邮件接收截图截图需显示阿里云发送的告警短信/邮件内容

三、选作任务(10分):双ECS部署与架构优化

任务要求

  1. 按照官方教程的完全相同步骤,在第二台相同配置的ECS实例上独立部署一套Ghost博客系统
  2. 分别访问两台ECS的公网IP地址,验证两个网站都能正常打开前台和后台。

部署过程中会遇到的问题及解决方向

当网站从单台服务器扩展到两台服务器时,会出现以下单服务器部署不存在的问题,你需要在报告中说明实际现象及对应解决思路:(6个问题及解决方向,只做参考)

  1. 数据一致性问题

    • 现象:两台服务器的文章数据、用户数据相互独立,在A服务器发布的内容在B服务器无法查看,反之亦然
    • 解决方向:将本地MySQL数据库迁移至阿里云RDS MySQL数据库,让两台ECS实例连接同一个中央数据库。(或者服务器A本地部署MySQL后,服务器B不部署数据库,而是远程访问服务器A的MySQL)
  2. 静态资源共享问题

    • 现象:如果未完成必选任务的OSS配置,在A服务器上传的图片在B服务器无法显示
    • 解决方向:完成必选任务的OSS静态资源存储配置,所有服务器共享同一份存储在OSS中的静态资源
  3. 用户会话同步问题

    • 现象:在A服务器登录后台后,访问B服务器后台时需要重新登录
    • 解决方向:配置Ghost使用Redis存储会话信息,可使用阿里云Redis服务实现多服务器会话共享
  4. 配置同步问题

    • 现象:在A服务器上修改了博客主题、网站设置或配置文件,B服务器不会自动同步这些修改
    • 解决方向:使用配置管理工具实现多服务器配置自动同步,或制作包含完整配置的自定义镜像用于新服务器部署
  5. 故障容错问题

    • 现象:如果其中一台服务器突然宕机,访问该服务器IP的用户将无法访问网站
    • 解决方向:在两台服务器前端部署阿里云负载均衡SLB,将用户请求分发到健康的服务器上
  6. 监控覆盖问题

    • 现象:仅为第一台服务器配置了云监控告警,第二台服务器出现故障时无法收到通知
    • 解决方向:为所有ECS实例配置相同的云监控告警规则,实现全系统监控覆盖

评分标准

  • 在问题1、5中,选择一个解决,选作任务就算完成。(问题2已解决;问题3、4是未来的需要处理的问题;问题6较为简单,这里提出只是希望主要这个可能出现的问题)
  • 问题1,GHost系统提交文章,再访问A、B服务器,需要数据一致(课堂教师来查看)
  • 问题5,两台服务器都正常状态时,访问alb负载均衡服务器,两台服务器都能访问;一台服务器挂机/其他异常状态时,访问alb负载均衡服务器,只能访问到正常的服务器,用户端不会出现异常。(课堂教师来查看)

作业提交要求

  1. 基础任务:提交6张对应评分标准的截图(也需要结合后续课堂展示,得到最终评分)
  2. 必选任务:提交5张对应评分标准的截图(也需要结合后续课堂展示,得到最终评分)
  3. 最终输出:整体的配置过程的简单描述,核心是文字说明+上诉要求的关键截图。
  4. 提交方式:pdf/word文档,具体方式待定。