一、自我介绍
本人本科毕业于东北大学能源与动力工程专业,研究生就读于长沙理工大学计算机科学与技术专业,目前研二在读,即将升入研三,作为一名转码人,十分爱好编程技术,同时也深知技术博客对程序员的重要性,但那些所谓的知名博客平台比如CSDN
之流,广告漫天飞,各种抄来抄去没有重点,实在没有让人写作的欲望。于是就想自己搭建一个个性化的博客,为了能自由的搭建各种服务,急需一台云服务器。于是通过同学介绍了解到了阿里云平台的学生活动,可以白嫖2.5个月的云服务器!是的,你没有听错,真真的免费,而且还是高配版,太香了,博客有着落了!真心感谢阿里云为学生推出的的飞天加速计划,让梦想落地!
二、博客开发攻略
1. 阿里云ECS配置
在选择地域时,推荐北上广深等发达地区,响应速度会快一些,并且推荐安装ubuntu20.04
的镜像,用户生态很丰富,找bug
也会方便很多,stackoverflow
上对该型号的Linux
系统问题解答较为全面。实例的root
密码一定要设置的比较复杂,因为服务器默认开启ssh的22端口,如果知道你的公网ip,则容易被破解。当开始使用该云服务器时,最好不要直接用root
身份登录进行操作,因为这是系统的最高权限,比较容易操作不当误造成不可逆的损失,推荐创建一个新的用户账号并赋予sudo
组的权限来进行操作
新用户配置代码如下
adduser aliyun # 如新建用户aliyun
usermod -aG sudo aliyun #绑定到sudo组 即赋予sudo权限
这样就可以用ssh登录服务器
ssh user@hostname -p port # 以用户user登录服务器hostname(ip) 并指定登录的端口
使用ssh
登录云服务器时每次都要输入用户名
和ip
繁琐又不好记,可以在ssh
中为服务器IP
配置别名
~/.ssh/config #配置文件
Host myserver
HostName IP地址或域名
User 用户名
#这样就可以直接输入 就可以登录了
ssh myserver
每次登录时输入密码很是不便,可以通过ssh配置免密登录
ssh-keygen # 生成ssh秘钥
id_rsa :私钥
id_rsa.pub :公钥
ssh-copy-id myserver #配置免密登录
#这样下次就可以不用输入密码了 直接登录起飞
和云服务器之间常常会有互传文件的需求,也可以通过ssh
来完成
#将本地文件上传服务器
#将本地家目录中的 tmp 文件夹复制到 myserver 服务器中的 /home/acs/ 目录下
scp -r ~/tmp myserver:/home/acs/
将本地家目录中的 tmp 文件夹复制到 myserver 服务器中的 ~/acs 目录下。
scp -r ~/tmp myserver:acs
#将服务器文件下载到本地
# 将 myserver 服务器中的 ~/homework/ 文件夹复制到本地的当前路径下。
scp -r myserver:homework .
ps:传文件更方便可以用vscode
的Remote Explorer
插件 可视化一键登录云服务器并修改文件
2. 博客环境搭建
为了省去node
环境配置以及框架的安装,推荐直接使用docker
容器技术,完整统一的运行环境随取随用,这里使用docker-compose
基于node:14-alpine
官方镜像搭建hexo
容器服务。并且为了方便操纵容器,写了一系列脚本控制
docker
部分目录截图如下
可以很方便的重启容器服务及进入容器
3. 博客主题配置
推荐使用hexo
的butterfly
主题,谁用谁知道,具体配置github上的官网仓库都有,这里就不展开说了。下面讲以下推荐的配置
代码高亮
highlight_theme: mac light # darker / pale night / light / ocean / mac / mac light / false highlight_copy: true # copy button highlight_lang: true # show the code language highlight_shrink: false # true: shrink the code blocks / false: expand the code blocks | none: expand code blocks and hide the button highlight_height_limit: 700 # unit: px code_word_wrap: false
启用本地搜索
# Local search local_search: enable: true preload: true CDN:
markdown数学公式选择
# KaTeX katex: enable: true per_page: false hide_scrollbar: true
评论系统选择
gitalk
与github
无缝对接comments: use: gitalk # livere(有广告),gitalk text: true # Display the comment name next to the button # lazyload: The comment system will be load when comment element enters the browser's viewport. # If you set it to true, the comment count will be invalid lazyload: false count: false # Display comment count in post's top_img card_post_count: false # Display comment count in Home Page
主题美化
# Fluttering Ribbon (動態彩帶) canvas_fluttering_ribbon: enable: true mobile: false # Mouse click effects: fireworks (鼠標點擊效果: 煙火特效) fireworks: enable: true zIndex: 99 # -1 or 9999 mobile: true # Beautify (美化頁面顯示) beautify: enable: true field: post # site/post title-prefix-icon: # '\f0c1' title-prefix-icon-color: # '#F47466'
4.博客展示
- 首页
- 主页
- 搜索
- 聊天
- 评论系统
- 文章样式
- 黑夜模式
5.添加后台管理系统
每次写文章时都需要在本地写好,然后在上传服务器,再重启项目重新生成,这样的流程会比较繁琐,如果能有一个可视化的后台管理系统,直接在线写代码然后一键部署岂不美哉。通过搜寻找到了hexo-admin
这个开源项目,可对文章增删改查,通过配置,可自己编写自动化部署脚本,从此让写作更加方便,也不需要每次都登录服务器了,极大地方便了作者。
后台管理页面展示如下:
- 登录
- 管理首页
- 文章在线编写
- 一键部署
三、总结与展望
通过阿里云的飞天加速计划,我在短期内快速提升了服务搭建能力和前端技术,了解了如何使用云服务器,并且通过设置安全组来控制端口的开发与否提升系统的安装性,并系统学习了docker
容器技术并了解了前端的node.js
的使用,通过使用流行的开源库生成极好的博客体验,让我真正的爱上技术,爱上写作,在未来我将在我的博客上集成一些自己写的小游戏以及程序员常用的一些小工具,让博客的功能更加强大。当然,这一切都离不开云服务器的支持,非常感谢阿里云的这次机会,让经济拮据学生时代的我们也能享用云计算时代为开发者带来的便利。