Twikoo私有化部署

2022-10-05 17:12:55 浏览数 (1)

前言

消失了几个月没管博客,一个不留神,Twikoo评论就寄了。研究了一下发现是腾讯的云服务开始收费了。原本有一个月的缓冲迁移时间,但是我一直不关注腾讯云的消息的,所以错过了。刚进去一脸懵,随便瞎点把之前的项目也点没了。。。。所以之前的评论就都没了。

昨天试着用了一下Waline,现在开发者做的很不错了,部署也很简单,邮件提醒也可以。但是我的站点有三个主题,其中“一隅”分站(主题为Cards)并不支持Waline,自己鼓捣了半天想添加一个,然后也没结果,就用来必力了(体验并不好)。

总还是有点不甘心,今天又看了一下Twikoo 文档,尝试用 MongoDB Vercel 部署,成功是成功了,但是国内效果并不好,总是超时(基本就成为了摆设)。

遂又摸索,利用自己的服务器做私有化部署,相对来说繁琐一些(这里用的是docker),但是效果很好。这里记录一下过程。


操作

Docker环境

前提:需要在服务器中安装docker,这里不做说明,网上教程很多。

拉取镜像

代码语言:javascript复制
sudo docker pull imaegoo/twikoo

创建并启动容器

代码语言:javascript复制
sudo docker run -p 8099:8080 -v /root/twikoo/data:/app/data -d imaegoo/twikoo

这里需要把服务器的8099端口打开(用到的是阿里云的服务)

测试

代码语言:javascript复制
twikoo:
  envId: http://服务器ip:8099

正常情况下访问http://服务器ip:port,即twikoo的服务地址,可以看到如下运行状况

理论上这样部署就可以了,但鉴于我的网站配置过https,由于twikoo本身并不支持https,因此还需要做反向代理。

Nginx反向代理配置

查阅了一些资料,看到了一个不错的解决办法:通过多个域名、多个ssl证书、用https再代理一个端口

前期准备

  1. 在阿里云中对主机域名再添加一个子域名

如我这里就是:twikoo.cnhuazhu.top

  1. 再申请一个SSL证书

需要注意的是,这里申请证书的绑定域名为上一步添加的子域名:twikoo.cnhuazhu.top

操作

将上一步申请的证书下载下来,放到服务器上。

例:我的存放路径:/etc/nginx/cert

将两个文件twikoo.cnhuazhu.top.keytwikoo.cnhuazhu.top.pem放入该目录下。

进入目录/etc/nginx/sites-enabled,在其中新建一个文件:twikoo.conf,并写入如下内容:

代码语言:javascript复制
upstream 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服务

代码语言:javascript复制
sudo service nginx restart

如此便实现了:访问https://twikoo.cnhuazhu.top ,Nginx 会将转发到http://cnhuazhu.top:8099。实现反向代理。

修改envId:

代码语言:javascript复制
twikoo:
  envId: https://twikoo.cnhuazhu.top/

保存,重新部署。最后配置twikoo面板就可以了。


后记

由于我没有涉及迁移评论内容的需求(其实原本可以有),这里就不再介绍了。详细可以看参考文章。

参考文章:

  • Twikoo小白私有化部署教程,迁移腾讯云 | 张军的个人博客 (xiaoniuhululu.com)
  • Twikoo腾讯云函数部署转移到私有部署 | 张洪Heo (zhheo.com)

0 人点赞