Https Nginx Hexo Git
前记
由于没有备案 所以 Http 的 80 端口被腾讯封了
只要检测到有有访问到本机的 80 都会被重定向
就像这样 http://burgertown.ga
一怒之下把 VPS 重做了系统
所以这一篇算是 Nginx 配置 Https 再用 Git Hooks 重新部署 Hexo 的笔记
在 VPS 上装好 Http 服务器
我的服务器是 CentOS 7.2
所以用下面的命令安装 Nginx
1 | yum install nginx |
选择 SSL 认证机构与域名托管机构
SSL 认证机构
一开始询问群里的基佬们基本都是 Let’s encrypt
但是有人说 SSLForFree 比较快速
这里记录一下我的过程吧
域名托管机构
我是腾讯云的机子 就直接把域名放在 DNSPod 上托管了
SSLForFree 有非常友好的界面
直接按照提示输入自己想要认证的域名就可以了
然后会有三种认证方式给你选
FTP 自动认证
手动认证
手动 DNS 认证
由于我的 80 端口是被封了的 所以只能通过 DNS 认证
这一步很简单 就不多讲了 摸鱼
直接在域名解析里根据他给的要求添加 TXT 解析就行了
很多人推荐的 Let’s Encrypt
这个要用 Shell 来注册与认证
首先登陆 DNSPod
在用户中心->安全设置中创建一个 API Token,并记录下
ID
和Token
这里我们用 Neipang 的 ACME 在 VPS 上执行下面的命令安装 ACME
1 | curl https://get.acme.sh | sh |
这里我们还是用 DNS 认证的方法 不过这次基本全自动了
先导入刚刚申请的
ID
和Token
1 | export DP_Id="1234" |
- 执行下面的命令来
issue
我 TM 都不知道什么意思然后等待就行了
1 | acme.sh --issue --dns dns_dp -d example.com -d www.example.com |
- 其实到这里域名认证就做好了 但是为了后续方便 我们还要把认证文件”安装”到其他目录
1 | acme.sh --install-cert -d example.com \ |
是不是很鸡儿乱?
我把我的写出来
1 | acme.sh --install-cert -d burgertown.ga \ |
我是把认证文件”安装”到/root/ssl 文件夹下
因为 CentOS7 开始使用 systemctl
了 所以我也用了。.. 用 service
也是可以的
其实我把所有文件都扔到/root 下了 因为我懒
修改 Http 服务器的配置使 SSL 生效
Nginx 的配置文件在 /etc/nginx/
下
推荐在 /etc/nginx/conf.d
新建一个配置文件
然后写入以下内容 按照你自己的服务器具体情况修改啦
1 | server { |
Windows 上的搭建与配置
**安装 Node.js **
**安装 GitForWindows **
配置免密(密钥)登陆
打开 C:\Users<用户名>.ssh 文件夹,如果没有就新建
在空白处单击右键,选择 Git Bash Here 打开终端
设置 Git 用户名
1 | git config --global user.email "[email protected]" |
- 生成 SSH 密钥
1 | ssh-keygen -t rsa -C "[email protected]" #一路回车也行 生成公钥和密钥 |
创建网站目录
在你电脑的任意位置创建一个文件夹(例如 E:\hexo 下文以此代替) 作为网站目录
安装 Hexo 打开cmd
,通过cd
命令进入hexo
文件夹,输入node
后执行如下命令
1 | npm install -g hexo-cli |
配置更新
修改 hexo\_config.yml
里面的 depoly
选项
1 | deploy: |
VPS 上配置 Git 使其自动从本地部署到 VPS
利用下面的命令安装 Git
1 | yum install git |
你们也知道我懒了 所以我直接用 root 用户了
创建 Git 仓库,并配置 SSH 登录
1 | mkdir .ssh && cd .ssh #我是在 root 目录下 |
配置 Git hooks
1 | cd hooks |
内容如下
1 |
|
然后赋予脚本的执行权限
1 | chmod +x post-receive |
最后重启 Nginx
1 | systemctl restart nginx |
最后
那么以后我们
1 | hexo new "文章标题" |
通过 Markdown
写好 .md
文章后
1 | hexo g #生成静态页面 |
当然 Hexo 不止这样的用法
还可以直接部署到 GitBooks 或者 Github 这样的地方 摆脱了需要* VPS *这种条件
非常有趣
参考链接