评论功能(待更新)
哇,之前用的Livere插件来实现评论功能,没想到过了一周,竟然给我加上了广告,不能忍,直接去掉了。
Livere的配置确实挺方便(除了注册时页面和邮件通知全是韩语),可惜有广告。。。
- 之后学一下改用Twikoo插件来实现该功能。 Twikoo官方文档:https://twikoo.js.org/
- 本来想用vecel部署,觉得还得学vecel太烦了
- 看官方文档说vecel大陆访问慢,Hugging Face 部署快,想用后者,结果后者连官网都打不开
- 发现可以私有部署,直接部署在服务器上,但看网上的教程,对nginx反代理以及linux配环境变量还是不熟,以后再学学,而且服务器竟然没下node.js还得下。教程https://blog.csdn.net/qq_26572789/article/details/135440212
- 看用docker私有部署感觉好简单,决定用docker部署,学一下docker
- 页面出现了评论功能,但不能评论,后台地址打不开,即网址+8099的端口号打不开twikoo后台,不知道是nginx反代理没做的原因还是twikoo不能用https的原因。好像得再加个证书,以后在搞,https://www.yuque.com/liuzhihangs/halo-theme-hao/fffs6ci2mg3r7iwa
云函数部署
docker私有部署
安装docker
安装依赖环境
1
yum -y install yum-utils device-mapper-persistent-datalvm2
设置下载Docker的镜像源
1
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
安装Docker
1
yum install docker-ce docker-ce-cli containerd.io
启动docker
启动Docker服务
1
systemctl start docker
设置开机自动启动
1
systemctl enable docker
测试
systemctl enable docker1
docker run hello-world
查看hello-world镜像是否下载成功
1
docker images
阿里云镜像加速
修改etc/docker/daemon.json文件
1
2
3{
"registry-mirrors": ["https://78q96cy9.mirror.aliyuncs.com"]
}重启镜像、重启docker
1
2systemctl daemon-reload
systemctl restart docker
拉取twikoo镜像
1 | docker pull imaegoo/twikoo |
创建并启动容器
1 | docker run -p 8099:8080 -v /home/twikoo/data:/app/data -d imaegoo/twikoo |
安全组开放端口
修改主题配置文件
1 | twikoo: |
Nginx https反代http
由于twikoo本身不支持https, 而如今http 传输数据还是不够安全的,需要通过nginx来实现 https反向代理http
由于博客本身,已经用了ssl证书了,需要再加一个端口8099
- 申请子域名
- 申请新的ssl证书注意的是add_header Access-Control-Allow-Origin “*” always;这个跨越设置不要加,好像nginx会默认将一个子域名对顶级域名放开跨域限制,加了的话,会提示only allow one异常
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30upstream twi {#需要配置upstream
server xxxx.com:8099; #你的域名+加端口
}
server {
listen 443 ssl;
server_name twikoo.xxx.com; #子域名
ssl_certificate /etc/nginx/ssl/twikoo.xxx.com/twikoo.xxx.com.pem;
ssl_certificate_key /etc/nginx/ssl/twikoo.xxx.com/twikoo.xxx.com.key;
# ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!ADH:!EXPORT56:RC4+RSA:+MEDIUM;
ssl_prefer_server_ciphers on;
location / {
#proxy_pass http://localhost:8099;
#proxy_pass http://twi; #这种方法,会导致twikoo邮件通知出现bug:getaddrinfo ENOTFOUND!!!
proxy_pass http://xxx.com:8099;#建议这种写法,和主域名保持一致
# add_header Access-Control-Allow-Origin "*" always; #这个不要加
# add_header Access-Control-Allow-Methods "POST, GET,PUT,DELETE, OPTIONS";
# add_header Access-Control-Allow-Headers "Origin, Authorization, Accept";
}
}
这样就实现了:访问https://twikoo.xxx.com nginx 会将转发到http://xxx.com:8099
vecel部署
注册MongoDB
记录一下账号
set up connection security
记录集群名字twikoo和用户名wcy
点击Network Access添加IP地址0.0.0.0/0
choose a connection method
点第一个Drivers
connect
记录connection string
mongodb+srv://wcy:
password改为密码
注册Vercel
申请Vercel 账号
部署
点击twikoo官方文档按钮将 Twikoo 一键部署到 Vercel
进入 Settings - Environment Variables,添加环境变量
MONGODB_URI
,值为前面记录的数据库连接字符串进入 Settings - Deployment Protection,设置 Vercel Authentication 为 Disabled,并 Save
进入 Deployments , 然后在任意一项后面点击更多(三个点) , 然后点击 Redeploy , 最后点击下面的 Redeploy
进入 Overview,点击 Domains 下方的链接,如果环境配置正确,可以看到 “Twikoo 云函数运行正常” 的提示
Vercel Domains(包含
https://
前缀,例如https://xxx.vercel.app
)即为您的环境 id怎么全是英语啊,而且加载好慢,不知道国内有没有平替啊,不是很想用国外的,加载速度太慢了