关于思源笔记

sevePath与思源

思源从版本1.9.8之后规定必须设置servePath绑定地址,即仅限指定地址访问。

比如,部署的时候设置的--servePath=127.0.0.1:6806,那么仅能访问127.0.0.1:6806访问,不可以0.0.0:6806或其他地址访问。

启动容器时若不设置--servePath,我们能够看到docker logs报告必须设置servePath。

该设置的好处显而易见:访问者仅能从指定地址访问,提高了思源的安全性。

弊端:不能使用隐性解析方案。

笔者喜欢在每个服务器部署一个思源笔记。且笔者部署的每一个思源都是使用隐性解析方案的。

关于此处servePath在官方文档的说明,可以使用nginx设置反向代理来隐藏地址,下面我们来看一下隐性解析与反向代理的区别。


隐性解析

隐性解析属于应用层。我们在设置域名解析的时候,一般设置为类型A解析。而隐性解析属于转发。

转发

转发一般分为两种,一种是显性转发,一种是隐性转发。

显性转发

显性转发即访问后跳转到所设置的转发域名

如 我们将三级域名a.baidu.com设置显性转发为b.baidu.com,则访问a.baidu.com时候,url会显示b.baidu.com。

隐性转发

隐性转发即访问后跳转到所设置的转发域名,但 url显示的为我们访问的域名。

如 我们将三级域名a.baidu.com设置隐性转发为b.baidu.com,则访问a.baidu.com时候,url会显示a.baidu.com。

隐性转发的好处为:我们可以隐藏访问的具体地址。比如说我们在使用隐性转发,三级域名a.baidu.com设置隐性转发为b.baidu.com,则我们使用a.baidu.com访问其文件夹/file,具体路径为b.baidu.com/file,但url则显示a.baidu.com。也就是我们使用a地址去访问b地址下的任意文件,隐性转发下的地址栏是不会变的,只显示a地址。


反向代理

反向代理这里指基于思源官方文档的反向代理,也就是基于本机的反向代理。

我们在地址为172.0.0.1的服务器内配置nginx,在配置文件*.conf里面设置

listen 80

proxy_pass 127.0.0.1:6806

server_name siyuan.baidu.com

其中,siyuan.baidu.com在域名解析设置为A类型解析到172.0.0.1。

那么我们访问siyuan.baidu.com时,相当于访问地址为172.0.0.1公网服务器的内网地址127.0.0.1:6806。


隐性解析与反向代理方案的区别

不同于隐性解析的是,改方案无法隐藏访问地址。

比如我们访问服务器内172.0.0.1/data/1.sy,那么访问地址为siyuan.baidu.com/data/1.sy。

若隐性解析方案访问172.0.0.1/data/1.sy,则地址栏显示仍然是siyuan.baidu.com(此处的baidu.com解析为A类型127.0.0.1,siyuan.baidu.com解析为隐性baidu.com:6806)


版本>1.9.8与方案

通过上面的描述我们可以知道,大于1.9.8的版本是不能够使用隐性解析方案访问思源的。

我们来对思源的判定简单做一下分析。

我们可以看到在conf.json做了访问限制。

笔者在部署的时候尝试了设置两个servePath,

即--servePath=baidu.com.6806 --servePath=siyuan.baidu.com。

测试发现,该情况下两个地址均无法进入思源。(测试时使用笔者的域名,非baidu.com。此处仅示例)。

以上即关于大于1.9.8的版本无法使用隐性解析方案访问的总结。

存储地址

关于存储地址,注意到本段以前图片的读者会发现,思源的存储地址是在容器内。我们来看一下思源的存储说明与实际地址。

官方说明如下

即思源存储于容器内的工作文件。

基于ubuntu20.04tls部署的思源

docker pull b3log/siyuan

docker run --name siyuan -it -d --restart=always -v /usr/local/software/siyuan/data/SiYuan:/root/Documents/SiYuan -p 6806:6806 b3log/siyuan

(老版本无需设置servePath)

那么实际存储地址为/var/lib/docker/overlay2/[容器完整id]/diff/home/siyuan/Documents/SiYuan

希望开发者以后可以将思源的保存地址允许设置到本机的root下,或本机的/home下的文件夹内吧。

关于思源笔记与docker的部分问题的更多相关文章

  1. Windows下自动云备份思源笔记到Gitee

    前言 思源笔记是一款本地笔记为主的软件,其目前提供了148元/year的付费同步功能,但对于21世纪中国难民而言还是太贵啦. 条件允许的同学还是使用官方的同步,支持下作者. 所以,就在思考有没有白嫖的 ...

  2. 利用Git同步思源笔记

    旧文章从语雀迁移过来,原日期为2022-10-22 思源笔记是一款优秀的本地优先的双链大纲笔记软件,拥有强大的笔记编辑功能且都是免费,唯一付费的就是云同步等一些服务了.但如果暂时还用不着云同步的,我们 ...

  3. 网页使用思源字体 CSS

    在知乎上再次看到这门字体的提问,想想中文字体过得多么艰辛,中文软件过得多么艰辛. 思源字体 2014年7月,Adobe与Google宣布推出一款新的开源字体思源黑体, 有七种字体粗细(ExtraLig ...

  4. 本地yum源构建以及Docker离线安装

    Docker离线安装以及本地yum源构建 在docker的使用过程中有时候会遇到一些私有化部署的问题,就是在一些无法上网的机器上面安装使用dokcer,这就引出了docker的离线安装的问题,dock ...

  5. Android中加入思源字体/NotoSansCJK/SourceHanSans

    系统版本号:Android 4.2.2_r1 本文主要是在Android中加入思源字体的过程记录. 思源字体是Google和Adobe在2014.07.18公布的中文字体. 1.获取思源字体(Goog ...

  6. PHP计算思源字体宽度, 并把文字绘制到图片上

    2019-6-19 9:18:54 星期三 思源字体是一套开源的字体, 那字体宽度是多少呢? 测试场景, 将包含汉字, 数字, 大小写字符的一段文字写到图片中去, 但不能出现超出的情况,  这就要计算 ...

  7. 读书笔记---《Docker 技术入门与实践》---其一

    一.镜像1.1.搜索 搜索所有nginx镜像 $ docker search nginx NAME DESCRIPTION STARS OFFICIAL AUTOMATED nginx Officia ...

  8. kali虚拟机安装VMTools、更新源、安装docker、配置sqli-labs

    一.安装VMTools: 传送门:关于安装VMTools 跟其他版本的虚拟机安装VMTools没什么区别,也得连网(我是kali用dhcp开nat模式) 之后按照上面的链接根据博主的步骤一步一步来即可 ...

  9. kali换源及安装docker

    kali换源及安装docker 以管理员身份运行. 换源,记得先备份, cp /etc/apt/sources.list /etc/apt/sources.list.bak 然后修改/etc/apt/ ...

  10. 【笔记】Docker入门

    这个文章讲的比较透彻,就不复制粘贴了 <Docker从入门到实践>阅读笔记 Docker安装 环境 root@fudonghai:~# uname -a Linux fudonghai - ...

随机推荐

  1. 『Python底层原理』--Python整数为什么可以无限大

    整数类型是编程中最常见的数据类型之一,但它的实现细节却鲜为人知. 与其他语言不同,Python 的整数是任意精度的,这意味着它们可以无限大,仅受限于内存. 这种特性使得 Python 在处理大整数时非 ...

  2. Openlayers 距离环绘制

    思路:利用layer的StyleFunction 来使地图移动或者放缩的时候,使圆保持在地图中心 /** * 绘制距离环 * @param {number} distance 每环间隔距离,单位:米 ...

  3. 再谈Mysql undo log, redo log与binlog

    一.undo log 1.undo log有两个作用 提供回滚和多个行版本控制(MVCC). 在数据修改的时候,不仅记录了redo log,还记录了对应的undo,如果因为某些原因事务失败而回滚,可以 ...

  4. [译] DeepSeek开源smallpond开启DuckDB分布式之旅

    DeepSeek 正通过 smallpond(一种新的.简单的分布式计算方法)推动 DuckDB 超越其单节点的局限.然而,我们也需要探讨,解决了横向扩展的挑战后,会不会是带来新的权衡问题呢? 译者序 ...

  5. manim边学边做--场景Scene简介

    在 Manim 社区版本中,Scene(场景)是构建动画的核心概念之一,它为我们提供了一个结构化的方式来组织和呈现动画内容. 本文将介绍什么是Scene,它在Manim动画中的作用,以及不同类型的Sc ...

  6. C# 泛型类型约束 where

    1 class Program { 2 static void Main(string[] args) { 3 4 } 5 } 6 7 interface IMyInterface { 8 void ...

  7. 2025年我用 Compose 写了一个 Todo App

    标题党嫌疑犯实锤 序言 从2月12日到3月4日这整整三周时间里,我从零开始又学习了一次 Compose. 为什么说又,是因为这已经是我第二次学习这套课程了. 故事从 4 年前说起,2021 年在意外获 ...

  8. MIT 操作系统6.S081第一章

    1.1进程和内存 fork 父进程中 fork 返回 子进程的PID 子进程中 fork 返回 0 exit exit会让当前进程停止执行并释放资源(包括内存和打开的文件) 通常: 0 表示 成功 1 ...

  9. mysql-8.0.19-winx64.zip 的安装与卸载

    一.安装 1.下载mysql 官网:https://dev.mysql.com/downloads/mysql/,本人用的目前的最新版本8.0.19,版本格式为zip,如下图 2.解压到指定路径,如下 ...

  10. 史上最全EffectiveJava总结(一)

    创建和销毁对象 1.静态工厂方法代替构造器 优点 静态工厂方法有名称,能确切地描述正被返回的对象. 不必每次调用都创建一个新的对象. 可以返回原返回类型的任何子类对象. 创建参数化类型实例时更加简洁, ...