前言

本机系统:CentOS 7.3

安装 Git

搭建Hexo博客的同时已经安装过了Git,这一步略过

安装 Nginx

嘻嘻,本博客又有这个的详细教程,这一步略过

安装好后,可以查看Nginx和Git版本,Nginx暂不配置

1
2
/usr/local/webserver/nginx/sbin/nginx -v
git --version

创建 git 仓库

给权限,用于存放网站资源

1
2
3
4
5
6
mkdir /home/git/
chown -R $USER:$USER /home/git/
chmod -R 755 /home/git/

cd /home/git/
git init --bare hexoBlog.git

在 /home/git/hexoBlog.git 下会自动生成 hooks 文件夹,新建钩子文件

1
2
cd
vim /home/git/hexoBlog.git/hooks/post-receive

空文件post-receive中添加下面代码指定Git目录和源码

1
2
#!/bin/bash
git --work-tree=/home/hexoBlog --git-dir=/home/git/hexoBlog.git checkout -f

保存后,修改权限

1
chmod +x /home/git/hexoBlog.git/hooks/post-receive

测试 Nginx

测试 Nginx 服务器,走个过程

1
2
wget http://127.0.0.1
rm -rf index.html

配置Nginx

配置 Nginx 托管文件目录,以后博客目录就是在这里

1
2
3
mkdir /home/hexoBlog/
chown -R $USER:$USER /home/hexoBlog/
chmod -R 755 /home/hexoBlog/

修改 Nginx 配置文件

  • 一定要修改网站根目录也就是托管文件目录/home/hexoBlog
  • 一定要放行端口,全部放行1-35565也可以
  • 一定要修改 Hexo 站点配置文件
1
vi /usr/local/webserver/nginx/conf/nginx.conf

http请求重定向到https

rewrite ^(.*)$ https://$host$1 permanent;

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

server {
listen 80;
server_name domainname;
rewrite ^(.*)$ https://$host$1 permanent;

location / {
root /home/hexoBlog;
index index.html index.htm;
}

error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}

}

配置ssl证书实现https访问,证书目录在/usr/local/webserver/nginx

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
server {
listen 443 ssl;
server_name domainname;

ssl on;

ssl_certificate /usr/local/webserver/nginx/full_chain.pem;
ssl_certificate_key /usr/local/webserver/nginx/private.key;

ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;

ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;

location / {
root /home/hexoBlog;
index index.html index.htm;
}

检查nginx.conf正确性

1
/usr/local/webserver/nginx/sbin/nginx -t

启动 Nginx 服务

1
2
3
4
/usr/local/webserver/nginx/sbin/nginx                # 启动 Nginx
/usr/local/webserver/nginx/sbin/nginx -s stop # 停止 Nginx
/usr/local/webserver/nginx/sbin/nginx -s reopen # 重启 Nginx
/usr/local/webserver/nginx/sbin/nginx -s reload # 重新载入配置文件

检查是否启动

1
ps -ef | grep nginx

修改 Hexo 站点配置文件

1
2
3
4
deploy:
type: git
repo: root@xx.xx.xx.xx:/home/git/hexoBlog
branch: master

当提示你输入服务器密码的时候表示已经部署成功了

1
hexo clean && hexo g && hexo d