warm

给 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。
  • 把用到的命令,简单的写下吧

    1
    2
    3
    4
    5
    6
    7
    8
    mkdir /var/repo
    git init --bare /var/repo/zwb.io.git

    mkdir /var/www/
    mkdir /var/www/zwb.io

    whereis nginx
    vim nginx.conf
    1
    2
    3
    4
    5
    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

    1
    2
    #!/bin/sh
    git --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,并赋权限

    1
    2
    3
    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

    1
    2
    3
    4
    ssh-keygen -t rsa -f ~/.ssh/id_rsa_vps -C "yourmail@xxx.com"
    cat ~/.ssh/id_rsa_vps.pub

    vim ~/.ssh/config
    1
    2
    3
    4
    5
    # two
    Host test.com
    HostName yourIp
    User git
    IdentityFile ~/.ssh/id_rsa_vps
    1
    2
    # 本地 cat ~/.ssh/id_rsa_vps.pub 复制到VPS ~/.ssh/authorized_keys
    vim /etc/ssh/sshd_config
    1
    2
    3
    4
    5
    RSAAuthentication yes
    PubkeyAuthentication yes
    AuthorizedKeysFile .ssh/authorized_keys
    PermitRootLogin yes # 允许 root 用户 SSH 登陆
    PasswordAuthentication no # 禁用密码登陆
    1
    2
    3
    4
    5
    chmod 700 ~/.ssh
    chmod 600 ~/.ssh/authorized_keys

    # 重启服务
    service sshd restart
  • 编辑 _config,参考:Deployment

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


看成果?http://wenboz.com

参考

使用 Git Hook 自动部署 Hexo 到个人 VPS
Hexo的Git部署,一行命令部署到GitHub和自己的VPS
Hexo 个人博客部署到 CentOS 个人服务器
linux下ssh公钥验证的设置和远程登录
一台电脑绑定两个github帐号教程
CentOS-6.9 安装 Nginx