服务器运维实战教程:从零开始一步步学 - 编号74092
很多新手运维拿到服务器后第一件事就是装面板,这其实相当于给跑车安了个自行车仪表盘——2024年某云厂商统计显示,超过70%的安全事件源于面板漏洞或配置错误。真正的服务器运维从放弃面板开始,直接面对Linux命令行才是正确路径。
最小化安装与SSH密钥的初始配置
拿一台CentOS 7或Ubuntu 22.04做案例。刚装完系统时,你看到的是纯字符界面,连鼠标指针都没有。这时候别急着装宝塔,先做三件事:禁用root密码登录、创建普通用户加入sudo组、改SSH端口到2222。举个例子,在你执行`ssh-copy-id -p 2222 user@ip`之前,服务器就像敞着大门——随便一个扫端口的脚本就能尝试爆破你的root密码。我见过某电商团队因为偷懒没改端口,第二天就被挖矿程序占满了CPU。
防火墙与Fail2Ban的防守组合拳
配置完SSH后,千万别以为万事大吉。firewalld或ufw必须立刻启用,只开放80、443和自定义SSH端口。更关键的是安装Fail2Ban并配置jail.local文件,设置SSH登录失败3次后封禁IP 15分钟。具体场景:你刚部署完WordPress网站,日志里突然出现大量来自俄罗斯IP的POST请求——那就是在试探你的xmlrpc.php漏洞。如果提前把Fail2Ban的wordpress规则打开,这些IP会在第4次失败请求后自动进入黑名单。
Nginx与PHP-FPM的进程调优困境
很多新手喜欢把PHP-FPM的`pm.max_children`调到100,结果2核4G的服务器直接OOM。正确的做法是先用`free -m`看内存,假设剩余3.5GB,每个PHP进程约50MB,那就设`pm.max_children=50`,`pm.start_servers=5`。举个现实例子:有个站长架设的论坛,日活500人,开始设`pm.max_spare_servers=20`,结果凌晨时分空跑20个PHP进程白白占用1GB内存。改成`pm=ondemand`后,内存占用直接降到300MB。
三个最常见的坑:
- 别用`chmod 777`偷懒——某次生产事故就是有人把上传目录设为777,导致黑客写入了webshell,正确做法是给目录设755,文件设644,属主设为www-data。
- 别忽视`/var/log`的定期轮转——50GB的日志文件能让`journalctl`卡死整个系统,通过`logrotate`设置每天切割并保留7天压缩包。
- 别忘记做内核参数优化——编辑`/etc/sysctl.conf`加入`net.ipv4.tcp_tw_reuse=1`和`net.core.somaxconn=2048`,否则高并发时你会看到大量TIME_WAIT堵塞端口。