前言

​ 生命在于无限折腾,好不容易才搭好自己的博客网站,提交到了 Github 让别人也能欣赏到(づ。◕‿‿◕。)づ,现在嘛,我又开始嫌弃 Github 访问太慢了,首页精挑细选了好久的精美图片总是加载不出来,这怎么行,必须安排!

​ 和 Github 一样,想 Gitee 等一些国内的代码仓库也提供了 Pages 给用户搭建静态网站,和发布到 Github 上都差不多,感兴趣的可以自己去了解一下。但是,这些方式提供的空间都是有限制的,如果你的博客越写越多,内容越来越多就会超出空间大小(是个远大的目标╮( ̄▽ ̄)╭),这些都不是重点,我就是要折腾,于是我选择租一台云服务器作为自己的博客服务器。

服务器配置

​ 服务器这边我们还是推荐 阿里云 的哦,个人博客建站的服务器新用户第一年一折,如果你暂时还不想租用服务器,只想折腾实践一下,你也可以尝试 30 天的免费试用,也足够使用了。

配置安全组

​ 首先,在租好服务器后第一步就是配置安全组,因为阿里云服务器默认是不授权80端口访问的,所以我们需要手动配置。

安全组

​ 按照顺序点击配置规则,进入后点击手动添加,添加80端口准入。

添加80端口准入

​ 之后还需要返回上一级菜单,点击 配置规则 旁边的 管理实例 把你刚才购买的服务器添加到安全组中,这样从外部你就可以访问到这台服务器了。

公网访问IP

​ 实例列表里面后面有 字的就是公网的 IP,你现在已经可以 ping 通这个 IP 了。

pingIP 之后我们就需要连接上这台服务器了,现在直接通过 ssh root@ipaddress 是连接不上去的,你需要在阿里服务后台配置好 ssh 的密钥:

配置密钥

​ 在 网络与安全 模块选择 密钥对创建密钥对 ,在这里你可以选择使用本地已有的密钥,或者让阿里云为你自动创建新的密钥,创建完之后,通过 绑定密钥对 将密钥绑定到之前创建的服务器上,这样你就能通过 ssh root@idaddress 连接到服务器了。

要注意的是,阿里云的服务器每台只能绑定一个密钥对。

配置服务器环境

配置 Nginx

​ 在这里我们需要 nginx 来搭建我们的服务器,通过 ssh 连接到服务器之后,我们可以使用 yum 命令来进行安装:

1
2
3
4
5
## 安装 nginx
$ yum install -y nginx
## 启动 nginx 服务
$ systemctl start nginx
$ systemctl enable nginx

​ 现在,我们就可以用我们的电脑去访问上面获取到的 公网IP,你会看到下面这样的 nginx 默认页面,说明我们的 nginx 配置成功了。

Nginx 默认界面

​ 当然,这并不是我们想要的,我们需要 nginx 指向我们的博客,所以继续做以下配置:

  • 因为阿里云的服务器root用户只能配置一个密钥用于登录,也就是说,在家和公司之间,你只能选择一个来登录你的服务器,同样的,你只能从中二选一来进行你的创作,为了解决这个问题,我们需要新建一个用户来管理。
1
2
3
4
## 新建名称为 git 的用户
$ useradd git
## 修改用户密码
$ passwd git
  • 创建完用户之后,会在 /home 目录下生成用户文件夹 /home/git,接下来我们切换到用户 git 并配置 ssh 密钥:
1
2
3
4
5
6
7
8
## 切换到 git 用户
$ su git
## 切换到密钥路径 .ssh,没有则创建
$ cd ~/.ssh
## 编辑 authorized_keys,在里面添加本地电脑的公钥
$ authorized_keys
> ssh-rsa AAA... ...4jFk= xxx
## 如果需要在不同地方创作,可以在这里都添加上公钥,这样都能访问
  • 添加完公钥后,就能通过 ssh git@ipaddress 连接服务器了。
  1. 接下来,我们开始正式配置 nginx

    1
    2
    3
    4
    5
    6
    7
    8
    ## 切换到 git 用户
    $ su git
    ## 切换到用户目录
    $ cd ~
    ## 创建目录
    $ mkdir blogwebsite
    ## 退出到 root 用户
    $ exit
  2. 移动到 nginx 的默认配置路径,并且新建一个文件夹作为我们博客的配置文件,在这里我新建了一个 blog 文件夹;

    1
    2
    3
    4
    5
    6
    ## 移动到 nginx 配置路径
    $ cd /etc/nginx
    ## 创建文件夹
    $ mkdir blog
    ## 移动到 blog 文件夹中
    $ cd blog
  3. 新建一个配置文件 blog.conf 并编辑:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    ## 创建配置文件 blog.conf
    $ vim blog.conf
    ## 在配置文件中添加配置
    > server{
    > listen 80;
    > root /home/git/blogwebsite; ## 这里是博客存放的路径
    > server_name xxx.xxx.xxx.xxx; ## 这里是博客的域名,没有域名可以先用公网 ip
    > location /{
    > }
    > }
    > ## 如果监听多个域名可以添加在下方
    > server{
    > listen 80;
    > root /home/git/blogwebsite; ## 这里是博客存放的路径
    > server_name xxx.xxx.xxx.xxx; ## 这里是博客的域名,没有域名可以先用公网 ip
    > location /{
    > }
    > }
  4. 修改 nginx 配置文件:

    1
    2
    ## 编辑 nginx 的默认配置文件
    $ vi /etc/nginx/nginx.conf

Nginx 配置

到这里,我们已经把 nginx 和我们的博客路径关联起来了,当然,现在博客路径里面还什么都没有。

配置 Node.js & GIT

  1. 首先,我们需要安装 Node.js,按照 Hexo 给我们推荐的,这里我们安装 10.x 以上的版本:

    1
    2
    3
    4
    5
    6
    ## 指定 10 以上版本
    $ curl --silent --location https://rpm.nodesource.com/setup_10.x | sudo bash -
    ## 安装 node.js
    $ yum install -y nodejs
    ## 安装完成后执行命令可以打印出版本号
    $ node -v
  2. 安装 Git

    1
    2
    ## 执行命令安装 git
    $ yum install git

到这,服务端的环境就配置完成了,现在只剩下博客网站相关的设置了。

配置 Git 仓库

现在,我们需要为我们的博客创建一个 Git 仓库,这样我们就能像提交到 Github 仓库一样,把网站提交到我们的服务器。

1
2
3
4
5
6
7
8
9
10
11
12
## 为了能够多处提交,我们切换到 git 用户
$ su git
## 移动到当前用户路径
$ cd ~
## 初始化 Git
$ git init --bare blog.git
## 编辑 post-receive 文件
$ vi blog.git/hooks/post-receive
## 添加以下内容 博客网站路径 .git 路径
> git --work-tree=/home/git/blogwebsite --git-dir=/home/git/blog.git checkout -f
## :wq 保存后,为 post-receive 添加可执行权限
$ chmod +x blog.git/hooks/post-receive

到这里,我们已经完成了服务器的所有配置。

本地配置

配置完服务器之后,我们需要修改本地配置文件 _config.yml 中的发布相关配置:

1
2
3
4
5
6
deploy:
type: git
## 这里我们要使用 git@ 来登录 git 用户,因为 root 用户只能在一台电脑上登录
repo: git@这里改为服务器公网IP:/home/git/blog.git ## .git文件夹路径
branch: master
message:

最后,hexo clean && hexo g --deploy 执行完成,你就可以通过 公网IP 访问到你的博客了。