妈的,刚续完费,就给我整这出!流量曲线刚有点起色,啪一下,服务器直接502给用户看了整整半小时,后台警报短信像催命符一样响,我盯着监控图那条红线飙升血压也跟着飙,真就是典型的“小时没事,大了等死”套餐呗?血泪教训就一句:千万别信厂商默认推荐的“入门优惠配置”!
崩了之后连夜重搞,总算弄稳了。给想自己搭站的朋友指条路,纯粹是个人被坑出来的经验,不保证对,但能避坑。
先说选配置。1核2G?那纯粹是给挂着玩的。你稍微跑个WordPress带点缓存,再来个数据库,内存就预警了。我的建议是,新站至少2核4G起步,别省那点钱,不然用户多点或者蜘蛛勤快点你就能欣赏到内存耗尽的美妙图景。CPU倒不用太顶级,但硬盘一定要选SSD,IOPS上不去,数据库读写和页面加载能慢到你怀疑人生,尤其是当你用了那种臃肿的主题和插件之后,别问我怎么知道的。
系统镜像。无脑选最新的Ubuntu LTS或者CentOS Stream(如果你习惯的话),别整那些老掉牙的版本,后期装软件依赖能烦死你。拿到手第一件事,不是装环境,是更新系统!apt update && apt upgrade -y 或者 yum update -y,这步不能省,堵上一些已知漏洞。
安全组(防火墙)!这个坑最大!厂商默认只开22、80、443。但你用宝塔?宝塔面板端口(默认8888)你得开吧?用了其他服务的端口也得开。但千万别图省事设置成0.0.0.0/0(允许所有IP),特别是像数据库端口(3306)、Redis端口(6379)这些,一定要限制IP访问,最好只允许本机(127.0.0.1)或内网IP。我当初就是手快,数据库端口暴露在公网,一周不到就被扫到尝试爆破,日志里全是垃圾信息,吓出一身冷汗。(这里有份我用的安全组规则模板,照着关大门)
然后说环境。新手直接用宝塔面板吧,别硬刚命令行,效率太低。但装完宝塔,记得去面板设置里改掉默认的8888端口、改一个复杂到你自己都记不住的账号密码,并且开启面板SSL。在宝塔里部署环境(LNMP或LAMP),PHP版本选7.4或8.0以上,MySQL选5.7或8.0,记得设置数据库root密码和单独的网站数据库用户,别所有站都用root。
最关键的优化部分来了,这都是流量教我做人的。在宝塔的“软件商店”里,给PHP安装“OPcache”和“Redis”扩展。然后装一个Redis服务本身。最后,去装一个缓存插件,比如“Redis Object Cache” for WordPress,把PHP Session和对象缓存都丢到Redis里,速度提升立竿见影,能极大减轻数据库压力——数据库一轻松,服务器就不容易崩。
还有,定期备份!宝塔自带计划任务,把网站文件和数据库备份到另一家云厂商的对象存储里(比如备份到腾讯COS或者阿里OSS),花不了几个钱。别只备份到服务器本地,服务器炸了本地备份一起玩完。我吃过这亏,现在设置的是每天凌晨自动备份,保留七天。
最后,监控。宝塔面板自带的监控看看就好,真要命的时候它可能反应不过来。去装个云厂商自带的云监控,设置好CPU持续90%超过1分钟、内存使用率95%、磁盘空间不足80%就给你发短信+打电话报警。我的救命稻草就是它,好几次在彻底崩掉之前提前扩容或者重启服务救回来了。
就这些吧。配置服务器没有一步到位,都是边挨打边升级。核心就一点:把“可能会出问题”的地方,在出问题之前就堵上。别学我,非要等到凌晨三点被报警叫醒,顶着黑眼圈一边查日志一边骂娘。唉,说多了都是泪。
