背景介绍
很久之前我就用Syncthing 搭建过文件同步服务(见 使用 Syncthing 同步文件 ),只是当初是直接下载的可执行文件,在宿主机启服务实现文件同步的,对宿主机有一定的侵入性,且当时只是记录了怎么把服务跑起来,没有说明清楚服务跑起来后怎么配置,最终实现文件同步的。
最近帮朋友使用 ChestnutCMS 搭建了个公司产品网站,正好需要在两台服务器器之间实现文件同步服务,一共有两台服务器:
Web 服务器
- 内网IP: 10.0.12.12
- 配置:CPU - 4核 | 内存 - 8GB | 系统盘 - SSD云硬盘 180GB | 流量包 - 2000GB/月(带宽:12Mbps)
主要部署 Docker + NginxProxyManager + KKFilePreview
应用服务器
- 内网IP: 10.0.16.13
- 配置:CPU - 8核 | 内存 - 16GB | 系统盘 - SSD云硬盘 270GB | 流量包 - 3500GB/月(带宽:18Mbps)
主要部署公司的云上业务系统 + ChestnutCMS,由于预算有限,数据库、Redis 等服务也装在这台服务器
两台服务器处于相同的内网环境,ChestnutCMS 主要用于内容管理及网站静态发布,然后使用 Syncthing 将静态化的文件同步到 Web 服务器,使用 NginxProxyManager 发布到外网访问。
应用部署及配置
部署发布端
使用 Docker 启动应用
我们在应用服务器上部署发布端,由于应用服务器上也提前部署了 Docker, 我们使用 docker来部署,docker-compose.yaml 文件示例如下:
services:
app:
image: syncthing/syncthing
container_name: syncthing
privileged: true
restart: always
volumes:
- /data:/data
- ../po-cms/wwwroot_release:/var/syncthing
- ../hosts:/etc/hosts
networks:
- net-zzl
ports:
- 8102:8384
- 22000:22000
networks:
net-zzl:
name: bridge_zzl
external: true
使用 docker compose up -d
启动服务
开放端口
从上面的配置文件中,我们开启了 8102 和 22000 两个端口,由于我们的应用服务器不直接对外提供服务,需要使用 Web服务器代理,所以 需要将这两个端口对Web服务器开放:
如果你的应用服务器本身启用了防火墙之类的机制,记得也要放行。
配置 Syncthing UI界面对外可访问
在 NginxProxyManager 中添加对外访问,相关的 DNS 解析请自行提前处理。
Syncthing 配置
第一次访问的时候系统会通过警告提示来引导用户做一些安全性相关的配置:
发送匿名报告数据提示
引导配置提示
我主要配置的信息如下:
Syncthing 常规配置
Syncthing 图形用户界面设置
至此 应用服务器的配置基本OK了。
web服务器配置
部署 Syncting
我们还是使用 Docker 来部署,基本信息差不多,我只是结合web服务器的环境改了下挂载目录及端口:
services:
app:
image: syncthing/syncthing
container_name: syncthing
privileged: true
restart: always
volumes:
- /data:/data
- ../nginx-proxy-manager/wwwroot_release:/var/syncthing
- ../hosts:/etc/hosts
networks:
- net-zzl
ports:
- 8013:8384
- 22000:22000
networks:
net-zzl:
name: bridge_zzl
external: true
对应用服务器开放端口
Syncthing 配置
基本配置跟应用服务器保持一致
配置同步
一、添加远程设备
在应用服务器添加web服务器的syncthing
在 Web 服务器同意添加:
二、应用服务器配置同步文件夹
单击主界面的「添加文件夹」按钮:
三、WEB服务器同意添加共享
web服务器接收到添加共享提示
配置信息
配置完成后会自动进行同步
同步完成后可在指定目录下看到同步后的文件
参考链接
- Syncthing 官网:https://syncthing.net/
- Syncthing 官网文档:https://docs.syncthing.net/
- Syncthing Github 开源地址:https://github.com/syncthing/syncthing
评论 (0)