将博客部署到阿里云服务器上 - Sanarous的博客

将博客部署到阿里云服务器上

最近由于域名想要备案,刚好看到阿里云学生服务器一年只需要114块。。。果断入手一个,这个是只要在阿里云上实名认证年龄小于24岁就默认是学生,所以是人人都可以购买,云翼计划阿里云服务器购买

买了之后就和以前阿里云上购买的域名一起绑定了,然后送去备案。。。不得不说湖北省备案时间要求真长,需要15天的审核时间,这个期间域名还需要关闭不能访问。

好了,闲话少说,之前部署到Github Pages其实也不错,还能一键开启HTTPS,不过响应速度实在是太慢了……毕竟Github服务器还是在国外,然后想过将博客搬到国内来,看了一下腾讯云也有免费空间,但是必须要求域名已经备案。。。好吧,最后还是回到备案上面来了。

现在在写这篇博客的时候,备案还在审核,所以假定我们购买的服务器的公网ip是172.30.16.33(当然不可能告诉你真的地址啦,皮一下)。

1、准备工作

首先我的本机操作系统是windows10,我购买的云服务器操作系统是Ubantu16.04 LTS 64位,不妨先认为云服务器的ip地址是172.30.16.33。需要做的第一步就是在本机windows下的git bash上配置ssh公钥登陆,这样hexo博客通过git部署时就不需要输入密码了。

1
2
# 在本机git上配置ssh公钥
$ ssh root@172.30.16.33

为了方便我在这里是直接使用root用户,其实这是不符合规范的。但是一方面我只是为了部署博客,不担心黑客干坏事,另外方面我也做了必要的安全防范,比如配置阿里云安全组,禁止ssh密码登陆以及配置ufw防火墙。

至于在本机上配置hexo博客就不说了,这些都默认已经做好了。然后我们操作云主机服务器。

2、安装git和nginx

以下操作都是在云服务器上完成的。

1
2
3
$ apt-get install update

$ apt-get install git //安装git

nginx也可以直接通过$ apt-get install nginx来直接安装,但是我个人不推荐使用这种方法,而是去下载压缩包来进行安装(主要是我做web后端需要用到多个Nginx操作),具体安装nginx可以看我另外一篇博客Ubantu下常用操作指令 中nginx下载安装相关。

(1)如果是使用apt install nginx安装的nginx,可以继续如下操作

第一步:先配置生成的静态文件目录

1
2
3
cd /var/www

mkdir blog //此处blog的名字随意取,也可以取hexo等

blog文件主要放置hexo博客生成的public静态文件,也就是博客目录。

第二步:编写nginx的配置文件

1
$ vim /etc/nginx/site-avaliable/default

其中配置文件

即将原来的root指向地址换成 /var/www/blog;

第三步:然后重启nginx使之生效

1
$ systenctl restart nginx

(2)如果是使用的压缩包安装的nginx,可以继续如下操作

第一步:生成静态文件目录同上

第二步:编写Nginx的配置文件

在安装的conf路径下,编辑nginx.conf文件

1
$ vim nginx.conf

再将其中root指向地址换成 /var/www/blog即可

第三步:启动或重启nginx同上

3、配置Git Hooks

第一步:创建Git裸仓库

blog.git作为远程Git仓库,hexo在本地生成的静态文件可以通过push与其同步。

1
2
$ mkdir ~/blog.git && cd ~/blog.git
$ git init --bare

第二步:配置Hooks脚本

post-receive脚本将在blog.git仓库接收到push时执行。

1
$ vim ./hooks/post-receive

而脚本内容非常简单,就是先删除原来的/var/www/blog目录,然后从blog.git仓库clone新的博客静态文件。

1
2
3
# 编写的脚本内容
rm -rf /var/www/blog
git clone /root/blog.git /var/www/blog

退出并保存使用!wq执行操作,然后给post-receive脚本执行权限。

1
$ chmod +x ./hooks/post-receive

4、修改本机的hexo博客配置文件

到本机站点目录文件下,修改_config.xml文件

1
2
3
deploy:
type: git
repo: root@172.30.16.33:blog.git

然后部署博客,通过git将其同步到云主机的blog.git仓库。

1
$ hexo d

然后访问http://172.30.16.33 即可访问博客,如果博客没有备案,需要使用8080端口监听请求,备案后可以直接使用80端口,即直接访问域名就可以访问到博客内容。

至此就访问成功啦!

如果这篇文章对您很有帮助,不妨
-------------    本文结束  感谢您的阅读    -------------
0%