Twikoo私有化部署
前言
消失了几个月没管博客,一个不留神,Twikoo
评论就寄了。研究了一下发现是腾讯的云服务开始收费了。原本有一个月的缓冲迁移时间,但是我一直不关注腾讯云的消息的,所以错过了。刚进去一脸懵,随便瞎点把之前的项目也点没了。。。。所以之前的评论就都没了。
昨天试着用了一下Waline
,现在开发者做的很不错了,部署也很简单,邮件提醒也可以。但是我的站点有三个主题,其中“一隅”分站(主题为Cards
)并不支持Waline
,自己鼓捣了半天想添加一个,然后也没结果,就用来必力
了(体验并不好)。
总还是有点不甘心,今天又看了一下Twikoo 文档,尝试用 MongoDB + Vercel
部署,成功是成功了,但是国内效果并不好,总是超时(基本就成为了摆设)。
遂又摸索,利用自己的服务器做私有化部署,相对来说繁琐一些(这里用的是docker),但是效果很好。这里记录一下过程。
操作
Docker环境
前提:需要在服务器中安装docker,这里不做说明,网上教程很多。
-
拉取镜像
1
sudo docker pull imaegoo/twikoo
-
创建并启动容器
1
sudo docker run -p 8099:8080 -v /root/twikoo/data:/app/data -d imaegoo/twikoo
这里需要把服务器的
8099
端口打开(用到的是阿里云的服务) -
测试
1
2twikoo:
envId: http://服务器ip:8099正常情况下访问
http://服务器ip:port
,即twikoo的服务地址,可以看到如下运行状况理论上这样部署就可以了,但鉴于我的网站配置过https,由于twikoo本身并不支持https,因此还需要做反向代理。
Nginx反向代理配置
查阅了一些资料,看到了一个不错的解决办法:通过多个域名、多个ssl证书、用https再代理一个端口
前期准备
-
在阿里云中对主机域名再添加一个子域名
如我这里就是:
twikoo.cnhuazhu.top
-
再申请一个SSL证书
需要注意的是,这里申请证书的绑定域名为上一步添加的子域名:
twikoo.cnhuazhu.top
操作
-
将上一步申请的证书下载下来,放到服务器上。
例:我的存放路径:
/etc/nginx/cert
将两个文件
twikoo.cnhuazhu.top.key
和twikoo.cnhuazhu.top.pem
放入该目录下。 -
进入目录
/etc/nginx/sites-enabled
,在其中新建一个文件:twikoo.conf
,并写入如下内容: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
29upstream twi {#需要配置upstream
server cnhuazhu.top:8099; #你的域名+加端口
}
server {
listen 443 ssl;
server_name twikoo.cnhuazhu.top; #子域名
ssl_certificate /etc/nginx/cert/twikoo.cnhuazhu.top.pem;
ssl_certificate_key /etc/nginx/cert/twikoo.cnhuazhu.top.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;
# 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";
}
} -
保存,重新启动Nginx服务
1
sudo service nginx restart
如此便实现了:访问
https://twikoo.cnhuazhu.top
,Nginx 会将转发到http://cnhuazhu.top:8099
。实现反向代理。 -
修改envId:
1
2twikoo:
envId: https://twikoo.cnhuazhu.top/ -
保存,重新部署。最后配置twikoo面板就可以了。
后记
由于我没有涉及迁移评论内容的需求(其实原本可以有),这里就不再介绍了。详细可以看参考文章。
参考文章: