准备
1、一个腾讯服务器(ubuntu)
2、Hexo本地博客
3、一个备案好的域名(如果你不想通过公网IP访问博客)
服务器配置
登陆云服务器
笔者通过MobaXterm连接服务器(在舍友的安利下接触到,感觉挺好用)
ssh username@IP_address
username是登陆用户名,IP_address是服务器的IP
配置git
安装git
sudo apt-get install git
git --version
,若能看到版本号则安装成功
添加git用户
1
2
3
4
| adduser git
passwd git
chmod 740 /etc/sudoers
vim /etc/sudoers
|
找到以下内容
1
2
3
4
5
6
7
| ## Allow root to run any commands anywhere
root ALL=(ALL) ALL
## 添加
git ALL=(ALL) ALL
退出并且更改权限
chmod 400 /etc/sudoers
|
添加密钥
1
2
3
4
5
6
7
8
9
10
11
| su git
mkdir ~/.ssh
vim ~/.ssh/authorized_keys
## 将本地的 id_rsa.pub 文件全部复制进去
##一般存储在C盘的user/.ssh文件中
#修改权限
cd ~
chmod 600 .ssh/authorized_keys
chmod 700 .ssh
|
测试连接
1
2
3
| #在本地的git bash
ssh -v git@VPS_IP #VPS_IP为服务器IP
#以git用户权限进入服务器即成功
|
建立git仓库
- 在
home/git
目录下,创建一个名为hexo
的裸仓库
先创建目录
1
2
3
4
| su root
mkdir /home/git/
chown -R git:git /home/git/
chmod -R 755 /home/git/
|
1
2
| cd /home/git/
git init --bare hexo.git
|
在/home/git/hexo.git
下,有一个自动生成的hooks
文件夹,需要在里面新建一个新的文件post-receive
:
vim /home/git/hexo.git/hookx/post-receive
1
2
3
| ##添加以下语句
#!/bin/sh
git --work-tree=/home/hexo --git-dir=/home/git/blog.git checkout -f
|
修改文件权限,让其可执行
1
| chmod +x /home/git/blog.git/hooks/post-receive
|
配置nginx
安装
1
| sudo apt-get install nginx
|
能够获得以下界面说明成功
1
2
3
4
5
6
| 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文件
一般都在/etc/nginx/nginx.conf
1
2
3
4
| su root
mkdir /home/hexo/
chown -R git:git /home/hexo/
chmod -R 755 /home/hexo/
|
以腾讯云为例

我们要用到的是Nginx的

里面有两个文件,将它们传到服务器上(笔者用的是git bash)
先在服务器上创建一个文件夹
接着上传文件
1
2
3
4
| 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
|
1
| vim /etc/nginx/nginx.conf
|
在http{}中插入
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
| 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服务
本地配置
1
2
3
4
| deploy:
type: git
repo: git@你的云服务器的IP地址:/home/git/hexoBlog
branch: master
|
最后的最后,记得域名解析,把域名绑定到服务器上

大功告成!
参考文章:
https://cloud.tencent.com/developer/article/1140005