给 Hexo 提速是个费力的事。多么良心 GitHub 国内已阉成龟速,心疼开发者一秒。

给 Hexo 提速方案有哪些?从最省钱的说吧。

  1. hexo-neathexo-all-minifier 等插件压缩 js/css/html/images 等文件。

  2. 采用图床,例如:极简图床 、七牛、又拍云等。

  3. CDN 加速,这个通常要收费。

  4. 国内走 Coding.net,分流加速。

  5. VPS 直接访问自己服务器。

压缩静态文件会大大增加 hexo g 生成博客时间,假如有 VPS 把这工作交给服务器倒是不错的选择。不知阿里云的 code.aliyun.com 里自动化工具能否实现免 VPS 自动化。但这也有个问题,生成工作给了服务器,如果执行过程出错怎么办?还得有报错机制,感觉复杂了。

图床为图片加速是不错的选择,我就用七牛的加速,只需在图片前加个前缀,就能实现 CDN,赞一个!

CDN 加速,似乎腾迅云有活动,半年免费。但毕竟收费的服务,而且不知 CDN 缓存问题是否已解决。

Coding.net 是会员才能自定义域名?不考虑了。

对,本文重点是有 VPS 的同学,自己动手丰衣足食。这个方案还一举解决了 GitHub Pages 不被百度收录的问题,爬虫被拒了。在国内用百度的人还是很可观的哇。


简单讲下思路吧,毕竟很多前辈们已讲的够清楚了。

  1. 在 VPS 上建 bare 类型 Git 仓库,用作 Hexo 提交的一个远程 Repo。例如:/var/repo/zwb.io.git

  2. 给自己网站建个文件夹。例如:/var/www/zwb.io

  3. 修改 NginxServer 指向网站目录。

  4. 配 git 钩子 post-receive,本地 push 上来后,同步到网站目录 /var/www/zwb.io

  5. 新建个 git 用户,把 Repo 与网站目录都给其权限,同时给 post-receive 可执行权限。

  6. 配置 VPS ssh 与本地 ssh 通信。

  7. 本地 _configdeploy 添加自己 VPS repo 地址。

  8. 域名解析,指向 VPS IP。

  • 把用到的命令,简单的写下吧

    mkdir /var/repo
    git init --bare /var/repo/zwb.io.git
    
    mkdir /var/www/
    mkdir /var/www/zwb.io
    
    whereis nginx
    vim nginx.conf
    server {
    listen       80 default_server;
    server_name  zwb.io wenboz.com;
    root         /var/www/zwb.io;
    }
  • vim /var/repo/zwb.io.git/hooks/post-receive

    #!/bin/shgit --work-tree=/var/www/zwb.io --git-dir=/var/repo/zwb.io.git checkout -f

    chmod +x /var/repo/zwb.io.git/hooks/post-receive

  • 创建 git user,并赋权限

    useradd -d /home/git -m git
    sudo chown git:git /var/www/zwb.io
    sudo chown git:git /var/repo/zwb.io.git
  • 配置 ssh-key

    ssh-keygen -t rsa -f ~/.ssh/id_rsa_vps -C "yourmail@xxx.com"cat ~/.ssh/id_rsa_vps.pub
    
    vim ~/.ssh/config
    # twoHost test.com
    HostName yourIp 
    User git
    IdentityFile ~/.ssh/id_rsa_vps
    # 本地 cat ~/.ssh/id_rsa_vps.pub 复制到VPS ~/.ssh/authorized_keysvim /etc/ssh/sshd_config
    RSAAuthentication yes
    PubkeyAuthentication yes
    AuthorizedKeysFile      .ssh/authorized_keys
    PermitRootLogin yes # 允许 root 用户 SSH 登陆PasswordAuthentication no # 禁用密码登陆
    chmod 700 ~/.ssh
    chmod 600 ~/.ssh/authorized_keys# 重启服务service sshd restart
  • 编辑 _config

  • 最后,改下域名指向,完成