去年夏天,个人我把一台闲置的搭建旧笔记本装上了Ubuntu Server,花了整个周末,网站终于让一个属于自己的个人网站跑了起来。域名是搭建凌晨两点在Namecheap抢的,九美元一年,网站比一杯精酿还便宜。个人那一刻我才意识到,搭建搭网站这件事,网站门槛比大多数人想象的个人低得多。
很多人以为建站需要买服务器、搭建学Linux、网站搞懂DNS解析,个人光听这些词就劝退了。搭建其实现在一台树莓派、网站一个旧手机、甚至一台常年开机的台式机都行。我用的就是2015年的ThinkPad,4G内存,跑Nginx加PHP-FPM绰绰有余。真正的成本在域名,服务器可以零元。家里宽带虽然没有固定公网IP,但用Cloudflare Tunnel做内网穿透,连端口转发都省了。
操作系统选什么?Ubuntu Server 22.04 LTS,装完大概占1.2G内存。别被命令行吓到,装个宝塔面板或者Caddy,图形化操作和Windows差不多。我一开始用宝塔,后来嫌它太重,换成了Caddy——配置文件就三行,自动申请Let's Encrypt证书,HTTPS直接搞定。Caddyfile长这样:
example.com { root * /var/www/html file_server } 就这么简单。保存,重启Caddy,网站就能访问了。当然,前提是域名A记录已经指向你的公网IP。如果没有公网IP,Cloudflare Tunnel的配置也不复杂,装个cloudflared,跑一条命令,把域名和本地端口绑定,完事。
内容管理这块,我试过WordPress,功能全但臃肿,一个插件更新就能让整站白屏。后来换成Hugo,静态生成,编译完就是一堆HTML文件,扔进Nginx目录就行。写文章用Markdown,本地编辑,git push上去,服务器端跑个webhook自动拉取。整个流程不到两秒。有人觉得静态站不能评论,其实用 utterances 挂GitHub Issues,或者 Cusdis 这种轻量方案,照样能互动。
数据库?静态站不需要。真要动态功能,SQLite足够。我帮朋友搭过一个摄影作品展示站,图片存本地,缩略图用ImageMagick批量生成,前端用PhotoSwipe做灯箱,整站加载不到200KB。他说比之前用Squarespace快多了,而且每年只花域名钱。
安全方面别偷懒。SSH改端口、禁用密码登录、只允许密钥认证,这三步做完能挡掉九成扫描器。防火墙用ufw,只开80和443。Fail2ban装上,防止暴力破解。每周自动备份到另一台机器,用rsync加cron,脚本就五行。我吃过亏——有次误删了Nginx配置,幸亏备份在,十分钟恢复。
维护成本呢?说实话,比养电子宠物还低。系统更新每月一次,apt upgrade跑一下。证书自动续期,Caddy和Cloudflare都帮你搞定。真正要花心思的是内容,不是技术。我那个站现在日访问量不到五十,但每次看到访问日志里出现陌生IP,还是会有种奇怪的满足感——就像在数字荒野里插了面旗子。
如果你也想试试,别想太多。找个周末,装个系统,配个域名,把第一篇文章传上去。遇到报错就搜,Stack Overflow和GitHub Issues里全有答案。搭网站这事,动手比规划重要得多。