1:安装nginx,git,node.js

安装git,nodejs

1
2
3
4
5
6
# 安装Git
yum install git

# 安装Node
curl -sL https://rpm.nodesource.com/setup_10.x | bash -
yum install -y nodejs

nginx安装参考nginx安装

安装完成后修改nginx配置:
在nginx文件夹中创建vhost文件夹,然后在vhost中创建博客的配置blog.conf,最后将blog.conf添加到nginx.conf中。

1
2
3
4
# nginx文件夹中创建vhost
mkdir vhost
# 创建博客配置文件
vim vhost/blog.conf

内容如下

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
server{
# 监听443端口https请求
listen 443 ssl;
# 域名:通过shiming.online和www.shiming.online都能访问
server_name shiming.online www.shiming.online;

charset utf-8;
# 如果域名不为 www.shiming.online 统一跳转到 https://www.shiming.online/
if ( $host != 'www.shiming.online' ) {

rewrite ^/(.*) http://www.shiming.online/$1 permanent;

}

# ssl设置
ssl_certificate /usr/local/nginx/1_shiming.online_bundle.crt;
ssl_certificate_key /usr/local/nginx/2_shiming.online.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_prefer_server_ciphers on;

# 博客位置,稍后创建
location / {
root /var/www/hexo;
index index.html index.htm;
}
}

server {
# 监听80端口http请求,并最后统一为:https://www.shiming.online/
listen 80;
server_name shiming.online www.shiming.online;
server_name shiming.online www.shiming.online;

rewrite ^/(.*) https://www.shiming.online/$1 permanent;
}

最后在nginx.conf中导入blog.conf

1
2
# 在#gzip  on;注释后添加
include /usr/local/nginx/vhost/*.conf;

建立博客目录

1
2
3
cd /var
mkdir www
mkdir www/hexo

2:创建git用户

1
2
3
4
5
6
# 添加git用户
adduser git
# 修改文件权限
chmod 740 /etc/sudoers
# 打开文件
vim /etc/sudoers

进入后按i键由命令模式切换到编辑模式。找到 root ALL=(ALL) ALL,在下面添加一行 git ALL=(ALL) ALL。(使用tab对对齐)。修改完成后,先按Esc由编辑模式切换到命令模式,再输入:wq命令保存并退出编辑器。

20201115115155

1
2
3
4
5
# 保存退出后改回权限
chmod 400 /etc/sudoers

# 设置git用户密码
sudo passwd git

设置自己的密码,这样就可以使用git用户远程登录云服务器了。

2-1:git用户配置ssh免密

2-1-1:本地生成密钥

打开本地git.bash程序

1
2
# 生成密钥,一路回车就行
ssh-keygen -t rsa -C "your_email@example.com"

生成ssh 密钥后,可以到~/.ssh目录下查看相关文件,一般来说ssh 密钥会包含id_rsa和id_rsa.pub两个文件,分别表示生成的私钥和公钥。

  • 在git等源代码管理中,使用cat ~/.ssh/id_rsa.pub命令,打印并将相应内容复制到源代码管理服务器即可实现git的无密码管理
  • 也可以直接打开本地文件夹C:\Users\你的用户名\.ssh,复制id_rsa.pub文件内容

2-1-2:服务器存放公钥

1
2
3
4
5
6
7
8
9
# 切换git用户。不切换的话就是给当前登录用户设置ssh免密了。
su git
# 创建~/.ssh/authorized_keys文件
cd ~
mkdir .ssh
cd ~/.ssh
vim authorized_keys
# 将刚才复制的本地公钥添加到authorized_keys中
# 如果后面需要添加其他机器,也是将他们的公钥添加到这个文件中

设置文件权限

1
2
chmod 600 ~/.ssh/authorized_keys
chmod 700 ~/.ssh

输入exit退出。

在本地计算机上使用git用户连接云服务器将不提示输入密码

尝试使用ssh方式登录

1
ssh git@服务器公网ip

2-1-3:修改git用户权限(可选0

为了安全起见,使git用户只能推送和拉取,而不能使用ssh登录,修改用户权限。

修改/etc/passwd文件中git用户权限为git-shell

1
vim /etc/passwd

git:x:1002:1002::/home/git:/bin/bash 改为: git:x:1002:1002::/home/git:/usr/bin/git-shell

例:

20201115121227

3:创建git仓库

使用root用户登录后切换到git仓库

1
2
3
cd /var/repo
git init --bare blog.git
vim /var/repo/blog.git/hooks/post-receive

文件内容如下:

1
2
git --work-tree=/var/www/hexo --git-dir=/var/repo/blog.git checkout -f
# work-tree为博客地址,git-dir为git仓库地址,根据自己的文件位置修改

保存并退出

修改权限

chmod +x ~/blog.git/hooks/post-receive

修改blog.git的拥有者为git

1
chown -R git /var/repo/blog.git

修改博客存放目录权限,使任何人可写

1
chmod -R 777 /var/www

4:Hexo配置

用github相同,修改_config.yml

1
2
3
4
5
6
7
deploy:
- type: git
repository:
- git@github.com:XShiMing/XShiMing.github.io.git
- git@服务器ip:/var/repo/blog.git
# - git@gitee.com:xshiming/shiming.git
branch: master
1
2
3
4
hexo clean
hexo g
hexo d
# 发布博客,然后就可以在nginx设置的域名中访问网站了。