前文
将hexo部署在了vps上,使用nodejs执行$ hexo s
以维持生态,猛然发现以这种方式操作,写完稿子还要本地push然后远端pull两次操作,还得处理图床,实在是太麻烦了,尤其到扯上插件、主题的部署更是爆炸,再三考虑后还是换Github Page吧。
既然脱离开了nodejs应用的端口占用,老nginx就有机会换上SSL大法。
Hexo 本地部署
在_config.yml中设置好deploy,并关联好ssh-key,以实现直接用$ hexo d
来完成同步。
1 | deploy: |
进入仓库的设置界面勾选Github Page即可,与此同时可以选用SSL。
跨域SSL
在一个以HTTPS访问的页面上,客户端会默认阻止访问HTTP,无论是否跨域。
然而当某些插件部署在vps上时(另一个二级域名),就不得不搞个SSL。
启用
创建一个nodejs的小服务后(如websocket或是简单的action),服务的API往往需要通过域名转发出去。
设置转发
稍微配置一下nginx:
1
2
3
4
5
6
7
8
9
10server
{
listen 80;
server_name api.kitekii.pw;
index index.html;
root /path/to/www;
location ~ api.* {
proxy_pass http://0.0.0.0:8888;
}
}本地还是使用http在域内转发,这个端口这么吉利,以后肯定得改(咦)。
配置SSL
暂用Let’s Encrypt(逃),概不细述~~
添加对
listen 443 ssl http2;
的监听即可。api允许跨域
在nginx配置的location项中添加
add_header 'Access-Control-Allow-Origin' '*';
即可实现。
手贱
千万不要把443绑到其他地方去了!!当初就不该跟着教程走,无意间将443绑给了科学上网服务……虽然当时确实能躲避某种操作,可现在看来已无卵用orz。