这是一次非常典型、硬核且充满戏剧性的“开发者实战之旅”。虽然在这个具体的电商爬虫项目上你选择了战略性放弃,但在短短的折腾过程中,你几乎把 Linux 运维、网络通信、Python 环境配置和爬虫反风控的经典“大坑”全踩了一遍,并且解决了其中 90% 的问题。
🌐 核心架构设计:为什么这么做? # 过去使用一键翻墙脚本,脚本作者通常采用“霰弹枪策略”:在一个黑盒环境里强行塞入 10 多个协议节点,将其全部打包在一个 Sing-box 内核里。这种方式看似全面,但在 1GB 内存的入门级 VPS(虚拟专用服务器)上会产生严重的弊端:大量闲置进程白白吃掉宝贵的系统资源,且黑盒脚本会死锁底层网络逻辑,导致后续更新极易崩溃或丢失配置。
在经历了前面的基础环境搭建后,本任务我们将真正把后端服务暴露给公网。
在服务器部署的进阶之路上,部署限制内存的数据库是一个必经的关卡 。对于这种小内存的 VPS(比如 RackNerd),如果直接裸跑默认配置的 MySQL 8.0,它会一口气吞掉 400MB 甚至更多的内存,极易导致服务器 OOM(内存溢出)死机。
📝 1. 背景与目标 # 在云服务器(VPS)上部署项目时,直接暴露端口既不安全也不优雅。本次实战的目标是:
在拥有了一台属于自己的 VPS(如 1核 1G内存,配置了 2G Swap)后,很多新手在尝试部署 Java 项目时,往往会选择直接在服务器上安装 Maven 或运行 docker build。但现实很残酷:Java 编译极其消耗内存,1G 的内存在构建瞬间就会被挤爆,导致系统卡死或触发 OOM (Out Of Memory) 杀掉进程。
背景与目标 # 在完成了服务器基础的安全加固与虚拟内存分配后,环境搭建正式进入容器化阶段。本次实践的核心目标是全面拥抱 Docker。摒弃传统的“直接在宿主机装一切”的做法,转而通过编写 docker-compose.yml 文件来统一管理和启动服务 。
核心目标 # 操作:安装并学习使用 tmux。 收获:掌握在服务器上跑长耗时任务的能力。即使本地 SSH 突然断开,任务依然会在后台运行,不会前功尽弃。 核心工具:tmux # tmux (Terminal Multiplexer) 是现代服务端开发的必备工具,解决了远程连接中途掉线导致任务中断的痛点。
Linux 服务器运维笔记:分配虚拟内存 (Swap) 避坑与实操 # 0. 背景与目标 # 在小内存(如 1GB RAM)的云服务器上运行 Java、MySQL 或进行前端构建时,物理内存极易耗尽导致进程被系统杀掉(OOM)。Swap(交换空间) 充当了“虚拟内存”的角色,是服务器在高负载下的“救命支撑”。
0. 前言 # 拿到一台全新的 Ubuntu 24.04 服务器(RackNerd 1核/1GB)后,第一步永远不是装软件,而是“关门”。本文记录了如何通过非对称加密实现免密登录,并完成初期的安全加固。