字节流的博客

Hexo 博客搭建笔记

1. Hexo

最初博客是用的 GitHub Pages,Jekyll 驱动,但是不知道最近抽什么风,code highlight 不好使了。再说,Jekyll 写起来来的没有那么痛快,添加代码高亮和图片等,还需要额外标签,不胜其烦,干脆就换到了简洁高效的博客框架 Hexo,并采用了简洁美观的 NexT 主题,配置也同样简单直接。

2. VPS

VPS 用的是 BudgetVM SSD VPS 系列,感谢 pcc 推荐。

选择好线路、操作系统等配置,下单后即可在 BudgetVM 管理页面看到所购买的 VPS 的 IP 地址及自动生成的 root 用户密码,即可 ssh 登录主机。

首先修改 sshd 配置,仅允许 Public Key Authentication 登录,禁用密码登录,相关配置可参考 Initial Server Setup with CentOS 7

安装 firewalld 替代 Iptables(注:如果安装 firewalld 后启动 firewalld 报错,请先执行 yum update 😓),用 firewalld 关闭用不到的端口,修改 sshd 端口号为不常见端口,切记要 firewalld 先放行新改的 sshd 端口号,并且再新建 session 中测试通过前,先不要退出当前 session。配置详情可参考 Additional Recommended Steps for New CentOS 7 Servers

3. nginx 及证书

nginx 的安装和配置可参考 How To Install Nginx on CentOS 7,切记 firewalld 放行相应服务及端口。

采用的是 Let’s Encrypt 提供的证书,此证书申请简单,免费,但是证书不支持泛域名,并且有效期只有三个月。好在填写几十个子域名没问题,并且又有 certbot 可以自动更新 Let’s Encrypt 证书,启动个 crontab 即可。证书的申请,在 nginx 中的配置及证书的更新,可参考 Let’s Encrypt 给网站加 HTTPS 完全指南Configuring Cron Tasks

4. Shadowsocks

Shadowsocks ✈ 安装可参考 Shadowsocks Python版一键安装脚本,清晰简单。多用户密码配置文件可参考如下配置:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
{
"server":"0.0.0.0",
"local_address":"127.0.0.1",
"local_port":1080,
"port_password":{
"8989":"password0",
"9001":"password1",
"9002":"password2",
"9003":"password3",
"9004":"password4"
},
"timeout":300,
"method":"aes-256-cfb",
"fast_open": false
}

5. Tavis CI

Travis CI 的配置可参考 Deploy to your own server through SSH with Travis CI,采用 SSH 方式自动测试,部署。本地可安装 Travis Client,更方便的使用 Travis CI 服务。因为 Travis CI 只对开源库免费,所以一些配置环境变量参数不方便公开,可采用 travis encrypttravis encrypt-file 加密隐私环境变量和文件。也可以在 Travis CI 控制台配置环境变量,但切记对于隐私参数不要打开 [Display value in build log] 开关,否则会在日志中显示明文,并且任何人都可以看到你公开项目的 build log。

Thanks! 😊