最近在提交百度收录的时候发现github将百度的爬虫给禁掉了,百度收录不了github上的网站。后来试过用CDN但是没有适合,最终还是将博客重新部署在VPS上,这样就解决了百度爬虫的问题。

准备

  • 独立IP服务器,可以在搬瓦工上购买。搬瓦工上的VPS可以用来翻墙而且性价比很高,很适合作为静态博客服务器。
  • 域名,域名可以在godaddy上购买,支持支付宝付款。godaddy是全球最大的域名注册商,最主要的是不需要备案。
  • SSH密钥,用来登录VPS和上传网站。

服务器配置

  1. 使用putty等工具连接上VPS,使用root权限添加用户,修改密码。
[root@VM_32_44_centos /]# adduser hexo
[root@VM_32_44_centos /]# passwd hexo

Centos-minial版本本身没有sudo命令,为了方便我们要先安装sudo。

[root@VM_32_44_centos www]# yum install sudo

赋予hexo root权限,在/etc/sudoers中添加一行

root        ALL=(ALL)       ALL
hexo        ALL=(ALL)       ALL #这个是添加的
  1. 将ssh公钥添加到/home/hexo/.ssh文件夹下面,并重命名为authorized_keys。

注意.ssh文件夹的权限为700,authorized_keys的权限为600。

  1. 添加nginx源,将以下代码添加到/etc/yum.repos.d/nginx.repo中。
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=0
enabled=1
  1. 安装nginx。
[root@VM_32_44_centos /]# yum install nginx
  1. 删除nginx虚拟主机配置文件
[root@VM_32_44_centos /]# rm /etc/nginx/conf.d/*
  1. 将以下内容添加到/etc/nginx/conf.d/hexo.conf
server {
  root /home/hexo/www;  #网站根目录
  index index.html index.htm;
  server_name www.astayang.com;   #你的域名
  location / {
    try_files $uri $uri/ /index.html;
  }
}
  1. 修改nginx配置文件,将/etc/nginx/nginx.conf中的user值修改为hexo

  2. 切换到hexo用户,并新建www文件夹,作为网站根目录。

[astayang@VM_32_44_centos /]$ su hexo
Password:
[hexo@VM_32_44_centos /]$ cd ~
[hexo@VM_32_44_centos ~]$ ls
[hexo@VM_32_44_centos ~]$ mkdir www
[hexo@VM_32_44_centos ~]$ ls
www
  1. 启动nginx服务,并验证nginx配置
[hexo@VM_32_44_centos hexo]# sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

如果输出和上面的一致就说明配置文件没有问题,接下来就启动nginx服务,并设置为开机启动。

[hexo@VM_32_44_centos hexo]# sudo systemctl start nginx
[hexo@VM_32_44_centos hexo]# sudo systemctl enable nginx

在/home/hexo/www文件夹下添加index.html文件。

[hexo@VM_32_44_centos www]$ echo "This is index.html" > index.html

在浏览器中输入VPS的IP地址,这是会出现This is index.html字样,删除index.html。

  1. 配置git
[hexo@VM_32_44_centos www]$ sudo yum install git

安装完成后,初始化git仓库

[hexo@VM_32_44_centos ~]$ mkdir hexo.git
[hexo@VM_32_44_centos ~]$ cd hexo.git/
[hexo@VM_32_44_centos hexo.git]$ git init --bare
Initialized empty Git repository in /home/hexo/hexo.git/

将以下内容添加到hexo.git/hooks/post-receive中,并将post-receive文件权限改为755。

#!/bin/bash
GIT_REPO=/home/hexo/hexo.git
TMP_GIT_CLONE=/tmp/HexoBlog
PUBLIC_WWW=/home/hexo/www
rm -rf ${TMP_GIT_CLONE}
git clone $GIT_REPO $TMP_GIT_CLONE
rm -rf ${PUBLIC_WWW}/*
cp -rf ${TMP_GIT_CLONE}/* ${PUBLIC_WWW}
[hexo@VM_32_44_centos ~]$ chmod 755 hexo.git/hooks/post-receive

以上就将服务器配置完毕,下面就需要配置客户端。

客户端

在hexo根目录_config.yml中添加部署配置

deploy:
- type: git
  repo: ssh://hexo@VPS的IP:ssh的端口/home/hexo/hexo.git
  branch: master

使用hexo命令将网站部署到VPS。