梅林固件安装hexo个人网站并配置cloudflare前置
这次网站翻新花的时间不比上次少,cloudflare真的是太复杂了,怎么折腾都无止境
这次的主要目标是把个人网站搬到路由器上,以省去国外VPS的成本
(谁让我的racknerd主机快到期了,网络还拉跨不想续费呢)
路由器建网站的经验网上比较少,大多数人买到高档路由器都是建个人云,
建网站不一样的地方是,它需要被多数人访问,需要针对网络流量做很多优化调整。
这里我记录一下这次的建设过程
梅林固件安装nginx
1.买个高速的u盘
现在u盘是真便宜了,128G这个档(100元左右成本)
闪迪CZ74>金士顿海DTKN>康威视X307C>其它
我个人买的是闪迪CZ74
2.安装虚拟内存和entware
u盘格式化成ext4格式,正常web界面安装这俩插件即可
3.装个编辑器vim或者nano
opkg install vim-full
默认安装问题:E1187: Failed to source defaults.vim
需要一个自启用户脚本,将缺少的/root/.vimrc生成
代码是这么一段,怎么加到启动里得查梅林文档,目前我还没搞懂
cp /opt/share/vim/vimrc /jffs/configs/vimrc
ln -s /jffs/configs/vimrc /root/.vimrc
4.安装并配置nginx
okpg install nginx
按照debian的习惯,默认的/opt/etc/nginx/nginx.conf可以拆开两个
(1)参数配置
## /opt/etc/nginx/nginx.conf
user nobody;
worker_processes 1;
#error_log /opt/var/log/nginx/error.log;
#error_log /opt/var/log/nginx/error.log notice;
#error_log /opt/var/log/nginx/error.log info;
#pid /opt/var/run/nginx.pid;
events {
worker_connections 64;
}
http {
include mime.types;
default_type application/octet-stream;
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
#access_log /opt/var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
gzip on;
##
# Virtual Host Configs
##
include /opt/etc/nginx/site.d/*;
}
个人家庭动态网络,80\443\8080端口全会被封,
所以nginx起一个加密端口即可,假设是7553
(2)网站配置
## /opt/etc/nginx/site.d/donneryst
# SSL certificate and key configuration shared by both server blocks
ssl_certificate /opt/etc/ssl/certs/fullchain.pem;
ssl_certificate_key /opt/etc/ssl/private/privkey.pem;
# Default server configuration
server {
listen 7553 ssl;
listen [::]:7553 ssl;
http2 on;
server_name donneryst.com www.donneryst.com;
root /opt/var/www/html;
index index.html index.htm index.nginx-debian.html;
location / {
try_files $uri $uri/ =404;
}
}
这里的证书fullchain.pem与privkey.pem后面会由cloudflare生成,不用走letsencrypt
到这里nginx基本就配置好了
5.上传网站
这里我传到了/opt/var/www/html,需要注意的是文件权限,文件全部644,文件夹全部755
# 修改目录权限为 755
find /opt/var/www/html -type d -exec chmod 755 {} \;
# 修改文件权限为 644
find /opt/var/www/html -type f -exec chmod 644 {} \;
域名与cloudflare配置
网上说的cname接入我完全搞不定,不知道是否还有效,以下是单域名的接入配置
1.配置主域名的解析服务器到Cloudflare
添加 - 现有域,然后按照提示配置原dns服务商的解析服务器
2.DNS配置
(1)主域名和www域名的CNAME都配到路由器动态域名donneryst.asuscomm.com,开启小黄云
(2)开启DNSSEC
(3)_acme-chanllege的CNAME按照TLS设置里的要求配置
3.SSL/TLS配置
(1)概述,我配为:完全(严格)
(2)边缘证书,在用户与cloudflare之间,cloudflare会自己生成两个并且自主更新
(3)源服务器证书,在cloudflare与主机之间,需要在cloudflare生成后,下载下来配置给梅林里的nginx
(4)自定义主机名,留空,这里我怎么配置都无法得到加速,靠CNAME接入cloudflare优选节点大法疑似已失效
4.速度配置 - 优化
所有可用设置启用
5.规则(这是重点)
新建Origin Rule,条件是SSL/HTTPS等于true,操作是 重写 端口 收件人 7553
评论系统
waline这次装到leanCloud上了,云端服务比本地靠谱多了
照着官方手册来:https://waline.js.org/guide/get-started/
1.注册国际版leanCloud并创建应用
这一步就是为了拿到APP ID, APP Key 和 Master Key
2.访问https://vercel.com/,并用github账户登录,创建一个project
名称随便起,我就叫waline
3.进入dashboard,设置环境变量
(Settings - Environment Variables)
配置三个环境变量 LEAN_ID, LEAN_KEY 和 LEAN_MASTER_KEY。
它们的值分别对应上一步在 LeanCloud 中获得的 APP ID, APP KEY, Master Key
4.重新部署
(Redeploy)
5.绑定域名
在Vercel侧配置(Settings - Domains)
waline.donneryst.com
在cloudflare的DNS侧配置
CNAME waline.donneryst.com cname.vercel-dns.com
6.访问并登录
评论系统:waline.donneryst.com
评论管理:waline.donneryst.com/ui
默认管理员用户是github登录的vercel用户
hexo网站的rsync部署
1.客户端安装cwrsync
本地Windows环境需要安装cwrsync,配置bin目录进PATH,并卸载windows默认ssh
2.服务器端需要安装rsync
okpg install rsync
3.配置文件需要指定私钥路径
deploy:
type: rsync
host: donneryst.asuscomm.com
user: admin
root: /opt/var/www/html/blog
port: 22
delete: true
progress: false
args: --chown=admin:root --chmod=D755,F644
key: C:\Users\jhpx\.ssh\id_rsa
verbose: true
ignore_errors: false
以上配置需要修改 hexo-deployer-rsync\lib\deployer.js的源码
if (args.args) params.unshift(args.args);
改为
if (args.args) params.unshift(...args.args.split(' '));
已经给hexo-deployer-rsync官方提了个pull_request,已经同意,下一版本应该会合并进主分支