Hexo项目部署到阿里云实战
Hexo项目部署到阿里云实战
效果展示
部署过程记录
宝塔安装
这个博客部署还是挺简单的,只需要搭建node环境和编写nginx配置文件。属于对小白来说比较简单。
进入所有云服务器的终端,安装宝塔,宝塔很方便便于我们对项目的管理,而且免费实属良心。
1
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh ed8484bec
我是centos7的linux,大家可以根据自己的需要按照情况安装。等待安装完成之后会在终端弹出管理页面地址和账号密码。大家登录进去之后是这个面板。

Nginx安装
一般如果通过命令行安装,很多常用的nginx插件是默认不安装的,但是在宝塔软件商店安装的话,是会默认帮你把常用的插件安装上的。
在软件商店搜索nginx,安装免费的那个。

安装完成点击配置,那里有图形化的启动开关,启动之后,打开阿里云安全组的80端口,访问看到nginx就是安装成功了,我这边就不做展示了。
安装node环境
我这边默认安装node14
1 | curl -sL https://rpm.nodesource.com/setup_12.x | bash - |
安装node12
1 | yum install -y nodejs |
安装nodejs和npm
看网上说安装nodejs会帮你npm安装好,但是我这边没有安装npm,所以又装了下。可以通过node -v和npm -v查看安装是否成功。
初始化服务器代码仓库,方便本地hexo博客同步到服务器
在linux下选择一个目录,进行git仓库的初始化
1 | adduser git |
这边先设置下默认git相关操作都是root权限。进行如下修改

1 | cd /home.git |
设置完之后可以通过window终端进行ssh访问看看是否成功,命令
1 | ssh -v git@你的公网IP |
密码是你linux操作系统的密码,能访问进入操作系统内部的话就是配置成功。
编写git hook钩子文件,把我们本地同步的代码,放到nginx配置文件,配置的工作目录。
githook文件一般在仓库目录下的hooks文件下,post-receive文件是在仓库收到推送时,会进行操作的脚本文件。
1 | cd blog/git/hooks |
woork-tree: 就是你nginx需要配置的文件路径,git-dir:你的git仓库路径 我下面直接这么叫了
开始创建工作目录,也就是nginx配置文件所需要的目录
1 | cd /www && mkdir blog |
配置nginx文件
在宝塔软件商店配置nginx配置文件,点击设置,点击配置修改,添加如下。
1 | server { |
hostname是你的个人域名,location可写可不写,配置完成之后,在nginx服务选项,点击重载配置并且重启nginx。之后在work-dir编写一个index.html,再访问服务器ip看看配置是否生效。
本地hexo配置文件修改
在本地hexo的配置文件__config-yml中
1 | deploy: |
1 | hexo clean && hexo g |
之后就会让你输入服务器密码,输入完成就会发现推送完成。
在服务器查看git-dir 和work-dir,会发现有文件进行了同步,再次查看服务器ip会发现,博客已经可以访问。
博客http升级到https
开启https认证,需要将申请到的ssl证书在nginx进行配置
在nginx.cnf文件中加入以下配置
1 | server{ |
重启nginx之后,打开443端口,再次访问就会显示升级到https
nginx解决跨域问题
在配置博客的评论系统的时候发现,docker部署的服务在前段访问是http协议,违反跨域原则,被浏览器拦截了,这边可以设置nginx进行https到http的转发避免该问题的出现,根据域名在nginx.cnf配置如下
1 | location =/twikooserve{ |
精准配置到相关路由后,使用proxy_pass进行http的转发,从而避免网络层协议不同,导致的跨域问题的出现。
重载配置文件后,重启下ngixn,刷新博客,可以发现评论系统已经恢复正常。
跨域问题还可以通过添加请求头,默认对*允许跨域请求的方式来解决。在此就不做赘述。