前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Twikoo私有化部署

Twikoo私有化部署

作者头像
花猪
发布2022-10-05 17:12:55
3.8K3
发布2022-10-05 17:12:55
举报
文章被收录于专栏:花猪的学习记录

前言

消失了几个月没管博客,一个不留神,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面板就可以了。


后记

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

参考文章:

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-09-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 操作
    • Docker环境
      • Nginx反向代理配置
        • 前期准备
        • 操作
    • 后记
    相关产品与服务
    容器镜像服务
    容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档