本博客配置

软件配置

  1. Linux
    CentOS 7.4 512M内存的vps 购买链接
  2. nginx
    开启了http2,brotli压缩,以及https
  3. rsync
  4. 其他
    开启了Google BBR网络优化算法

开发环境

  1. nodejs
  2. hexo
  3. rsync

网站发布流程

在本地通过Markdown编辑器编辑md文件,然后利用hexo生成网页,将网页通过rsync发布到服务器

服务器

建立www用户

1
2
useradd www #添加www用户
passwd www #为www用户设置密码

安装BBR加速

1
2
3
wget --no-check-certificate https://github.com/teddysun/across/raw/master/bbr.sh #下载一键脚本
chmod +x bbr.sh #赋予执行权限
./bbr.sh #安装

安装NGINX

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
wget https://github.com/grahamedgecombe/nginx-ct/archive/v1.3.2.tar.gz
tar -zxvf v1.3.2.tar.gz
git clone https://github.com/bagder/libbrotli
cd libbrotli
./autogen.sh
./configure
make && make install
git clone https://github.com/google/ngx_brotli.git
cd ngx_brotli/
git submodule update --init
wget -O openssl.tar.gz -c https://github.com/openssl/openssl/archive/OpenSSL_1_0_2k.tar.gz
tar zxf openssl.tar.gz
mv openssl-OpenSSL_1_0_2k/ openssl
git clone https://github.com/cloudflare/sslconfig.git
cd openssl
patch -p1 < ../sslconfig/patches/openssl__chacha20_poly1305_draft_and_rfc_ossl102j.patch
cd ..
wget http://nginx.org/download/nginx-1.12.2.tar.gz
tar -zxvf nginx-1.12.2.tar.gz
cd nginx-1.12.2
./configure --add-module=../ngx_brotli --add-module=../nginx-ct-1.3.2 --with-openssl=../openssl --with-http_v2_module --with-http_ssl_module --with-http_gzip_static_module
make && make install

安装HTTPS证书

1
2
3
wget https://dl.eff.org/certbot-auto #下载脚本  
chmod a+x certbot-auto #赋予权限
./certbot-auto certonly –webroot

配置rsync

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
yum install rsync
vi /etc/rsyncd.conf

#rsync配置详情如下
uid = www
gid = www
use chroot = no
pid file = /var/run/rsyncd.pid
[ftp]
path = /home/www/hexo
secretsfile = /etc/rsyncd.secrets ##密码文件
read only = no

#启动服务
service rsyncd start

本地开发环境

我使用的是Mac,下面的也是在Mac下的操作

建立rysnc脚本

1
2
3
4
5
6
7
touch ~/publish.sh #建立rysnc脚本
vi ~/publish.sh
#编辑脚本 将以下内容复制到脚本里
sync -avzpP ~/workspace/node/hexo/public/* [email protected]服务器ip::ftp

#赋予执行权限
chmod +x ~/publish.sh

之后只需要运行这个脚本就可以发布内容了

安装node环境

参考在Mac下安装nodejs

安装hexo