Hexo部署到腾讯云
准备
1、一个腾讯服务器(ubuntu)
2、Hexo本地博客
3、一个备案好的域名(如果你不想通过公网IP访问博客)
服务器配置
登陆云服务器
笔者通过MobaXterm连接服务器(在舍友的安利下接触到,感觉挺好用)
ssh username@IP_address
username是登陆用户名,IP_address是服务器的IP
配置git
安装git
- 命令行安装
sudo apt-get install git
- 查看git版本
git --version
,若能看到版本号则安装成功
- 创建git仓库,用于存放博客网站资源
添加git用户
adduser git
passwd git
chmod 740 /etc/sudoers
vim /etc/sudoers
找到以下内容
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
## 添加
git ALL=(ALL) ALL
退出并且更改权限
chmod 400 /etc/sudoers
添加密钥
su git
mkdir ~/.ssh
vim ~/.ssh/authorized_keys
## 将本地的 id_rsa.pub 文件全部复制进去
##一般存储在C盘的user/.ssh文件中
#修改权限
cd ~
chmod 600 .ssh/authorized_keys
chmod 700 .ssh
测试连接
#在本地的git bash
ssh -v git@VPS_IP #VPS_IP为服务器IP
#以git用户权限进入服务器即成功
建立git仓库
- 在
home/git
目录下,创建一个名为hexo
的裸仓库
先创建目录
su root
mkdir /home/git/
chown -R git:git /home/git/
chmod -R 755 /home/git/
- 创建完后,创建裸仓库
cd /home/git/
git init --bare hexo.git
- 创建一个新的git钩子,用于自动部署
在/home/git/hexo.git
下,有一个自动生成的hooks
文件夹,需要在里面新建一个新的文件post-receive
:
vim /home/git/hexo.git/hookx/post-receive
##添加以下语句
#!/bin/sh
git --work-tree=/home/hexo --git-dir=/home/git/blog.git checkout -f
修改文件权限,让其可执行
chmod +x /home/git/blog.git/hooks/post-receive
配置nginx
安装
sudo apt-get install nginx
- 启动Nginx服务
service nginx start
- 测试Nginx服务器
wget http://127.0.0.1
能够获得以下界面说明成功
Connecting to 127.0.0.1:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 43704 (43K) [text/html]
Saving to: ‘index.html’
100%[=======================================>] 43,704 --.-K/s in 0s
- 测试网页是否能打开
在浏览器输入服务器IP地址
配置Nginx文件
- 查找Nginx配置文件
nginx -t
一般都在/etc/nginx/nginx.conf
- 创建
/home/hexo
目录,用于Nginx托管
su root
mkdir /home/hexo/
chown -R git:git /home/hexo/
chmod -R 755 /home/hexo/
- 下载域名的SSL证书
以腾讯云为例
我们要用到的是Nginx的
里面有两个文件,将它们传到服务器上(笔者用的是git bash)
先在服务器上创建一个文件夹
mkdir /home/SSL
接着上传文件
scp file_local_address username@VPS_IP:destination_address
#file_local_address是本地文件地址,也就是上图Nginx文件夹中的两个文件地址,VPS_IP:destination_address就是服务器上的地址,VPS_IP是服务器IP,注意不要漏掉冒号":"
#例如我的就是
$ scp C:/Users/86135/Desktop/mclaren888.cn/Nginx/1_mclaren888.cn_bundle.crt root@106.52.39.183:/home/SSL
- 修改nginx.conf文件
vim /etc/nginx/nginx.conf
在http{}中插入
http{
#打开80端口
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name mclaren888.cn; # 修改为自己的域名
root /home/hexo; # 修改为网站的根目录
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
rewrite ^(.*) https://mclaren888.cn$1 permanent; #添加的语句,注意中间改为自己的域名 #该语句是让服务器将http的请求重定向到https,使连接安全
location / {
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
#安装证书
server {
listen 443;
server_name mclaren888.cn; # 填写绑定证书的域名
ssl on;
ssl_certificate /home/SSL/1_mclaren888.cn_bundle.crt; #证书文件位置
ssl_certificate_key /home/SSL/2_mclaren888.cn.key; #同上
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # 按照这个协议配置
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; # 按照这个套件配置
ssl_prefer_server_ciphers on;
location / {
root /home/hexo; # 站点目录
index index.html index.htm;
}
}
}
- 使用
nginx -t
检查是否有语法错误,若无语法错误重启Nginx服务
service nginx restart
本地配置
- 修改hexo站带你配置文件相关git配置
deploy:
type: git
repo: git@你的云服务器的IP地址:/home/git/hexoBlog
branch: master
最后的最后,记得域名解析,把域名绑定到服务器上
大功告成!