我的服务器系列:总体设计
不定期更新的服务器攻略指南。
记录服务器的配置管理、软件安装等信息,和附带文章索引。
前言
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)
域名解析配置
- 主域名
指向个人网站 - tailscale次级域名
如 tx.linshenkx.cn、uc.linshenkx.cn等配置为tailscale分配的IP,只能通过vpn访问。 - 公网服务次级域名
如 derper、wiznote等都指向云服务的公网ip - 其他通配符域名
指向个人网站
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 |
|