服务器搭建
服务器搭建
本文主要记录本地服务器的搭建,记录时间为2026年8月16号。服务器已经搭建完毕。
作者自己开发的小程序后台应用原本运行在华为云服务器上(华为云服务器白嫖了一年半),前段时间发现华为云服务器到今年十月份就到期了,需要续费或者重新购买一台服务器。作者去华为云官网看了一下,也对比了其他的服务商,价格对于作者来说偏高,于是开始打算自己搭建一台服务器。
服务器购买
由于这段时间资金紧张,作者没有去某东或者某宝上购买,是在闲鱼上购买的二手的 N100 迷你小主机,内存 16 G, 没有硬盘(需内存和硬盘购买前一定要问清楚),硬盘是在闲鱼上买的江波龙 512 G,购买时注意接口,一定要和你买的机器适配。如果嫌自己配置太麻烦,可以和自己和买主商量,加钱购置合适的硬盘。(如果你们也想自己搭建本地服务器并且资金紧张的情况,也可以去看看二手的)。
服务器搭建
作者的 N100 迷你小主机配置如下:
| 项目 | 你的配置 / 信息 | 备注 |
|---|---|---|
| 🖥️ 主机 | Intel N100 迷你主机 | 低功耗小主机 |
| CPU | Intel N100 | 4 核 4 线程 |
| 系统 | Debian GNU/Linux 13 (trixie) | 当前主要运行环境 |
| 网卡 | Realtek RTL8111/8168/8211/8411 | 已从 r8169 调整为 r8168-dkms |
| 网卡驱动 | r8168 | 已加载到内核 |
| 网络速度 | 1000 Mbps | 千兆有线网络 |
| BIOS/内核优化 | pcie_aspm=off |
用于处理部分 ACPI/PCIe 问题 |
硬件准备好后,作者没有直接安装 Ubuntn Server,而是先安装了虚拟化平台 Proxmox VE,然后在 Proxmox 下安装了 Ubuntu S server。小程序后台代码以及相应的环境和中间件安装在 Ubuntn Server 中。
Proxmox VE 和 Unbuntn Server 安装都很简单,可以自行到网络上搜索一下,傻瓜式点击安装即可,需要注意的部分也基本都标注出来了。
项目架构图
作者之前就购买了域名和阿里云服务器,都不贵,域名80元两年,轻量应用服务器 79 一年(2 核 2G),一般都负担的起。
自己搭建服务器完成后,代码到服务器上跑起来了,那么如何通过手机访问到自己的应用呢?下面就介绍一下作者的个人服务器架构。
以上就是作者的个人服务器架构,可以分成 公网服务器、家庭 N100 主机、业务服务、数据服务、监控告警、开发部署 六大部分。
整体架构组件
| 层级 | 组件 | 所在位置 | 主要作用 | 你当前架构中的用途 |
|---|---|---|---|---|
| 公网入口 | 阿里云轻量应用服务器 | 阿里云 | 提供公网 IP 和公网计算资源 | 作为整个系统的公网入口 |
| 公网入口 | 域名 www.wzdboy.cn | 阿里云 DNS | 将域名解析到公网服务器 | 用户通过域名访问你的服务 |
| 公网入口 | Nginx | 阿里云轻量服务器 | Web 服务器、反向代理 | 接收 HTTPS 请求并转发到后端服务 |
| 安全 | HTTPS / SSL | 阿里云 Nginx | 加密 HTTP 通信 | 保证公网访问安全 |
| 内网穿透 | FRPS | 阿里云轻量服务器 | FRP 服务端 | 接收 N100 上 FRPC 建立的隧道 |
| 内网穿透 | FRPC | N100 / Ubuntu | FRP 客户端 | 主动连接阿里云,把内网服务映射出去 |
| 虚拟化 | Proxmox VE | N100 | 虚拟机/容器管理 | 管理你的 Ubuntu 虚拟机 |
| 操作系统 | Ubuntu Server | N100 的 VM | Linux 服务运行环境 | 承载 Spring Boot、MySQL、Redis 等 |
| 应用 | Spring Boot | Ubuntu | 运行业务后端 | 运行你的 xx 项目 |
| Java 环境 | Temurin JDK 21 | Ubuntu | Java 运行环境 | 为 Spring Boot 提供 JVM |
| 数据库 | MySQL 8.0.43 | Ubuntu | 关系型数据库 | 保存 Spring Boot 的业务数据 |
| 缓存 | Redis | Ubuntu | 高性能内存数据库 | 缓存、Session、临时数据等 |
| 服务管理 | systemd | Ubuntu | 管理 Linux 服务 | 管理 Spring Boot、FRPC、MySQL、Redis 的启动和重启 |
监控和告警体系
| 组件 | 所在位置 | 作用 | 监控/处理对象 |
|---|---|---|---|
| Uptime Kuma | 阿里云轻量服务器 | 服务可用性监控 | Spring Boot、PVE、Ubuntu、MySQL、Redis、FRPC、FRP Tunnel |
| Spring Boot Actuator | Ubuntu | 提供应用健康检查接口 | /xx/actuator/health |
| Bark Server | 阿里云轻量服务器 | 接收监控告警并推送 | 接收 Kuma 的异常/恢复通知 |
| Bark App | iPhone | 接收手机推送 | 服务宕机、恢复、异常等 |
| FRP Tunnel Monitor | Uptime Kuma | 检查 FRP 隧道 | 判断 N100 ↔ 阿里云的 FRP 是否正常 |
| PVE Monitor | Uptime Kuma | 检查 Proxmox | 判断 PVE Web/API 是否正常 |
| MySQL Monitor | Uptime Kuma | 检查 MySQL | 判断数据库是否可以正常连接 |
| Redis Monitor | Uptime Kuma | 检查 Redis | 判断 Redis 是否正常响应 |
开发和自动部署
| 组件 | 作用 | 在你的系统中的作用 |
|---|---|---|
| IDE | 编写代码 | 本地开发 Spring Boot 项目 |
| Git | 版本控制 | 管理项目代码 |
| GitHub | 代码托管 | 保存项目源代码 |
| GitHub Actions | CI/CD 自动化 | 代码提交后自动构建 |
| Maven / Gradle | Java 项目构建 | 编译 Spring Boot 项目并生成 JAR |
| SCP / SSH | 文件传输和远程管理 | 将 JAR 上传到 N100 |
| systemd | 服务自动化 | 上传新 JAR 后重启 xx.service` |