我的服务器系列:总体设计

不定期更新的服务器攻略指南。
记录服务器的配置管理、软件安装等信息,和附带文章索引。

前言

2022.4更新:把笔记本扔了,买了nas服务器(并升级到16g内存)
本文记录对服务器(2云+1NAS)的规划、管理过程,并分享一些经验心得。

一 资源总览

1 域名

域名即入口,现有已备案域名一个: linshenkx.cn

2 云服务器

云服务器都是买了3年的,有公网ip

名称 资源 说明
uc 2c8g1m,40g 主服务器
tx 2c4g3m,50g+400g 存储服务器

3 服务器

闲置笔记本因为性能孱弱,且年久失修,不经折腾,便领了盒饭光荣退休了。

新上任的是威联通的ts262c,默认2c2g我给它升级到16g,能装docker,功耗又低,就当是迷你服务器了。

二 组网方案(VPN)

以前是用蒲公英的跨网组网,现在全部升级到 TailScale。方便又好用。
开源版本可以使用 HeadScale,参考:https://fuckcloudnative.io/posts/how-to-set-up-or-migrate-headscale

三 域名管理(dns)

域名解析配置

  1. 主域名
    指向个人网站
  2. tailscale次级域名
    如 tx.linshenkx.cn、uc.linshenkx.cn等配置为tailscale分配的IP,只能通过vpn访问。
  3. 公网服务次级域名
    如 derper、wiznote等都指向云服务的公网ip
  4. 其他通配符域名
    指向个人网站

Nginx

由swag负责证书申请、使用以及续签等,并内置nginx实现代理、跳转等。

Nginx服务器接收到请求后,统一将http 301跳到https访问。
而在https内,则根据二级域名的具体名称转发到对应的服务。

整个过程对于服务应用来说是透明的,应用只需确保监听端口即可,无需考虑域名和ssl配置。

二 角色分配

离线服务器主要用于搭建大数据平台,做实验用,暂不列入

机器 角色(软件) 说明(博客链接)
nas nas服务器 家用服务器,有较高的网络带宽,负责文件存储、家庭影音等
clash(clash-web) 网络畅通是一切行动的前提:我的服务器系列:clash-docker使用并实现订阅链接自动更新
swag letsencrypt+nginx,再也不要看到ip和端口,万物皆在https+域名之下:文章待整理
ddns 动态域名解析
docker-registry docker私有仓库(原本使用nexus,太重了,没必要)
git-lfs-server git大文件存储(原本使用nexus,太重了,没必要)
jellyfin 家庭影音
tx 主云服务器 网络带宽和磁盘空间较大,但cpu和内存不高,存放供公网访问的服务,如:个人网站、数据库、http文件服务器等,
swag 常规必备,参考如上
http-file-server 简单好用的http文件服务器
derper tailscale自定义derper服务器
halo 个人博客: 个人博客系统设计(支持hexo和halo同步)
mysql 自动备份的数据库:预装cron服务的mysql镜像
uc 备用云服务器 存放个人笔记等
swag 常规必备,参考如上
halo 备用
mysql 备用
haloSyncServer Halo博客同步器
wiznote 从印象笔记到可以私有部署的为知笔记:文章待整理 (也可以看看joplin,优点是支持webdav备份,支持裁剪,缺点是丑,导入印象笔记目录结构会丢失)
random-image-api 颜值即正义:对接了阿里oss的随机图api

三 管理工程

为了使每个服务器使用的软件及其部署过程有迹可循,我开了一个私有仓库来跟踪记录。

因为我几乎所有软件都是以docker容器形式安装运行的,
所以安装、管理过程都可以简化为docker命令记录在readme.md里面。
而个别需要额外配置文件的也放在同级目录下。
这样以后服务器迁移的时候十分方便,
只需要根据docker目录把挂载目录进行迁移再运行docker命令即可。
另外docker命令也可以使用docker-compose配置文件进行取代,本质一样。

其结构如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
myserver:
- 服务器1:
- server.md
- 软件1
- readme.md
- 软件1的配置文件
- 软件2
- readme.md
- 软件2的配置文件
- 软件3
- readme.md
- 服务器2:
- 软件4
- readme.md

我的服务器系列:总体设计
https://linshenkx.github.io/my-server-overall-design/
作者
林泽浩
发布于
2099年3月26日
许可协议