更优的Obsidian云同步方案
前言
优化此前提到的 Obsidian 同步服务 LiveSync 的使用体验。
使用 1 Panel 快速搭建服务
服务器面板是一类可以通过图形化界面管理你的云服务器的工具。我目前使用的是 1Panel。1 Panel 是一个开源、免费(社区版)的面板,它基于 Docker 来部署管理其他应用。官方有清楚的安装教程,由于开发公司 飞致云
是中国公司,既不会在安装面板时碰上的网络问题,安装过程也有清楚的中文 CLI 信息输出,因此基本不存在安装难度。下面,我们以 v 1.10.21-lts
版为例进行讲解。
注意在云服务器的防火墙处放开对应的端口。
首先配置网络。安装后,打开浏览器登录管理界面,在 容器→配置→镜像加速
界面添加镜像网址。镜像源毕竟可能会失效,这里推荐以最新搜索和测试结果为准。1 Panel
也在文档中提供了一个镜像地址配置 - 1Panel 文档:https://docker.1panel.live
。
随后点击 应用商店
一栏,直接搜索"LiveSync"进行安装。安装前面板提示的那些配置向看着来即可。一旦看到 已启动
的字样,那么说明已经安装成功了,参考此前的文章去配置 CouchDB 和 Obsidian 上的 LiveSync 插件吧。
注意在云服务器的防火墙处放开对应的端口。
此后都可以通过 1 Panel 面板进行升级和启停等管理。
使用反向代理简化迁移
不久前我的老服务器到期了,于是经历了一次小小的迁移。由于是腾讯云到腾讯云,整个过程只是制作镜像安装镜像,并不难。但是,云服务器对应的 IP 地址发生了变化。如果 LiveSync 的远端 URI 我们写的都是 IP 地址的话,那么每次迁移就得一台一台设备地改掉 URI。通过反向代理我们可以解决这个问题。
反向代理,从定义上来说,就是客户端只访问到代理服务器,而不访问真正提供资源的服务器(们),由代理服务器去代办"找资源服务器要资源"这件事。由于人们把“代理客户端进行网络请求”叫做 正向代理
,那么 代理服务端响应网络请求
自然就是 反向代理
。具体到这件事儿上,其实我们就是配一个代理服务,将一个网址反向代理到我们的实际 IP 端口上去。
首先当然需要有个域名,给它配置 DNS 解析将一个域名指向服务器的公网 IP 地址。
例如,假设我的域名为
example.com
, 那么我的 Obsidian 同步服务域名可以设置为obsidian.example.com
。
然后在 1 Panel 面板中,在 应用商店
中安装 OpenResty
,这是一个基于 Nginx
的 Web 应用服务器。
安装成功后,在 网站
→ 网站
下选择 新键网站
→ 反向代理
,主域名
(和 代号
)填写前面设置的域名(如 obsidian.example.com
)。代理地址
为本地地址+ CouchDB 的访问端口(如 127.0.0.1:5984
)。
最后,将 LiveSync 中 URI 配置成这个域名。
此后,LiveSync 访问同步服务器资源将会是如下的步骤:
- 向 DNS 请求解析域名,得到到代理服务器地址(如
1.1.1.1:80
);- 代理服务器被访问后,把请求扔给同一台机器上的同步服务器 CouchDB(对代理服务器来说,是
127.0.0.1:5984
,对客户端来说是1.1.1.1:5984
);- CouchDB 进行同步。
这样,LiveSync 就不再关心服务器的地址了。即使同步服务运行的服务器地址发生了变化,无论我们有几台设备,我们只需要在 DNS 解析处进行一次配置就可以完成修改。
🎯:我们还可以通过
Let's Encrypt
获取加密证书,进一步提升客户端和服务端沟通时的安全性。在 1 Panel 的网站设置
→HTTPS
中可以设置。不过需要注意开启后,LiveSync 的 URI 前也需要写明https://your.website.domain
。