很多人第一次买Linux云服务器,习惯在控制台里挑最便宜的一台,装好系统就直接开干。用了一段时间才发现内存不够、磁盘写满,日志里全是扫描记录。前期的选型和初始化省不得,花半小时把基础打好,后面能少折腾很多次。

一、先想清楚用途,再选配置
云服务器的规格并不是越高越好。两核四G跑静态博客和跑Java后端,体感差得很远。选之前可以先问自己三件事:业务偏计算还是偏I/O,访问量是平稳还是集中在某几个时段,数据需要不需要长期留存。
建站和跑项目的差别,主要在资源的去向。WordPress站点、企业官网这类场景,瓶颈通常是内存、磁盘I/O和出口带宽,CPU大多数时候很闲。跑后端API、定时任务或者数据处理,更吃CPU和内存,并发一高就会卡住,所以要给峰值留出余量。两者用同一个配置标准去衡量,很容易一个买多了、一个买少了。
有个小团队做内部文档站,日访问量不到两千,一开始买了四核八G,月费快三百元。看了一段时间监控,CPU平均用不到5%,内存只占了一个多G。后来换成一核二G,静态文件挪到对象存储,月费降到五十元出头,访问速度几乎没变。配置高不代表用得好,关键是按实际负载来定。
操作系统怎么挑
主流选择是Ubuntu LTS、Debian、Rocky Linux和AlmaLinux。团队如果本来就熟悉Debian系的apt和包管理,用Ubuntu LTS上手最省事。如果机器上跑的软件和运维脚本都是按RHEL的习惯写的,Rocky Linux或AlmaLinux会顺很多。不管选哪个,都选长期支持版本,别图新。频繁做大版本升级,最容易出兼容问题。
二、拿到机器后先做安全基线
公网IP上线第一天就会被扫描,SSH端口一旦开放,密码爆破的记录很快就会堆满日志。下面这几项做完,基本能挡住大部分低成本攻击。
- 新建普通用户,禁止root远程登录。需要高权限时用sudo提权,操作有据可查。
- 改用SSH密钥登录,关闭PasswordAuthentication。先确认密钥能正常登录,再关密码,否则很容易把自己锁在门外。
- 安装fail2ban,对反复登录失败的IP自动封禁。
- 开启防火墙,只放行业务需要的端口。Ubuntu用ufw,RHEL系用firewalld。
- 设置时区并开启NTP同步。时间不准,排查故障时日志对不上,很多时间会耗在这上面。
- 开启自动安全更新,例如unattended-upgrades。补丁不及时,漏洞就一直摆在那里。
有一种情况很常见。测试数据库为了方便,直接对公网开放端口,密码还用了默认或很简单的组合。过几天机器上冒出陌生进程,CPU长期占满,账单也跟着涨。排查下来,多半是弱口令被人撞开了。数据库只允许内网或指定来源IP访问,换成强密码,这类事故基本可以避免。
三、业务部署别直接跑在系统上
部署应用时,运行环境和系统最好分开管理。常见做法是用systemd管理进程,Nginx做反向代理,依赖多的服务用Docker封装。这样换机器或者迁移时,成本低很多。
以Python Web服务为例,先建一个独立的运行用户,代码放在固定目录,再编写systemd服务单元文件。服务器重启后应用会自动拉起,日志也能用journalctl统一查看,不用满机器翻文件。
[Unit]
Description=demo web service
After=network.target
[Service]
User=appuser
WorkingDirectory=/opt/demo
ExecStart=/opt/demo/venv/bin/gunicorn -w 2 -b 127.0.0.1:8000 app:app
Restart=always
[Install]
WantedBy=multi-user.target
单元文件写好后,执行daemon-reload,再用enable –now启动服务。之后更新代码,用restart重启,比手动杀进程再启动稳得多。gunicorn只监听127.0.0.1,外部流量统一经过Nginx进来,端口暴露面也小。
四、监控和备份,别等出事再补
服务器出问题,多半挑在最不方便的时候。至少盯住三类东西:资源指标(CPU、内存、磁盘、网络)、服务可用性探测和关键日志告警。Prometheus加Grafana能覆盖大部分场景,云厂商自带的监控上手更快,小规模项目用它就够了。
备份最容易犯的错,是把备份放在同一台机器的另一个目录里。磁盘一坏,数据和备份一起没了。比较稳妥的做法是“3-2-1”:至少三份数据,存在两种不同的介质上,其中一份放在异地。数据库可以用定时任务跑mysqldump或pg_dump,再同步到对象存储。备份能不能用,要定期做一次恢复演练,只生成文件不算数。
五、控制成本的几个思路
- 按监控数据定期复盘规格,负载长期偏低就降配,别等账单吓一跳才动。
- 非核心任务可以考虑抢占式实例或按量计费,但要接受随时被中断的风险,任务最好能断点续跑。
- 旧快照、闲置镜像和没挂载的云盘同样计费,建议每季度清理一次。
- 静态资源交给CDN或对象存储,服务器只处理动态请求,出口流量能省下不少。
收个尾
选型时看清用途,上线前把安全基线做好,运行中靠监控和备份兜底,大部分问题都能提前挡住。对个人开发者和刚起步的团队来说,先把这套流程走顺,比咬牙买一台性能更强的机器更实在。