大家好,我是“小虾米”。上一篇我们带大家成功打通了 LNMP 动态网页的闭环。“环境总算搭好了,网站也能正常访问了,但总觉得服务器直接‘裸奔’有点不安全,万一被攻击或者服务器重启后服务没自动起来怎么办?”于是,今天我们就迎来“基于 Linux 系统的基础服务搭建”的收官篇——《安全防线加固》。我们将通过防火墙策略、开机自启管理以及核心日志排查,为你的线上业务筑起最后一道安全防线!1. 防火墙筑底:用 UFW 开启安全边界
在 Linux 中,Ubuntu 自带了一个非常人性化的防火墙工具 ——UFW(Uncomplicated Firewall)。我们之前操作系统是安装的最小化版本,所以可能没有安装ufw命令,所以我们先安装。sudo systemctl status ufw
默认情况下,防火墙可能是关闭的或者规则较乱,我们需要手动为业务端口保驾护航。这里我们先简单介绍适配当前LNMP框架的规则,后续会有更详细的防火墙使用专题文章,敬请持续关注。(2)【小虾米温馨提示】在开启防火墙前,务必先放行 SSH 端口,否则一开防火墙你就会被自己“关在门外”连不上服务器!(3)开放 Web 服务的常用标准端口(80端口为 HTTP,443端口为 HTTPS)。sudo ufw allow 80/tcpsudo ufw allow 443/tcp
系统会提示可能会中断现有连接,输入 y 确认开启
通过上述步骤,你的服务器就建立起了一道坚固的防护网,除指定的 SSH 和 Web 端口外,其他未授权的端口一律被拒绝访问。2. 守护进程管理:让核心服务实现“开机自启”
服务器难免会遇到机房断电、系统重启或日常维护的情况。如果重启后需要手动去敲命令启动 Nginx 和 MySQL,那就太麻烦了。我们需要将核心服务加入开机自启动守护列表。sudo systemctl enable nginx
sudo systemctl enable mysql
(3)设置 PHP-FPM 运行环境开机自启,根据你的实际 PHP 版本调整,如 php8.5-fpm。sudo systemctl enable php8.5-fpm
sudo systemctl is-enabled nginx
systemctl enable会在系统的/etc/systemd/system/目录下创建软链接,确保服务器在每次冷启动后,这些关键服务能够按正确的依赖顺序自动拉起。3. 故障排查雷达:核心日志究竟藏在哪里?
当线上业务突然报错,或者网页打不开时,千万别盲目乱猜。运维高手的直觉永远来自于查阅日志。记住这几个核心服务的“黑匣子”路径:/var/log/nginx/access.log -- 默认的访问日志
/var/log/nginx/error.log -- 默认的错误日志/var/log/mysql/error.log -- 默认的错误日志
/var/log/php8.5-fpm.log -- 记录 FPM 服务的启动、停止、子进程重启(如内存溢出被杀)等服务级事件。配合我们前面学过的 tail -f 实时追踪命令(例如 sudo tail -f /var/log/nginx/error.log),任何线上故障都能锁定元凶!4. 给读者的小作业:
今天我们学习了 UFW 防火墙的配置、核心服务的开机自启设置以及日志排查路径,请到你的服务器上动手练习吧:(1)使用 sudo ufw 规则放行 80 和 SSH 端口并成功开启防火墙。(2)使用 systemctl enable 将 Nginx 和 MySQL 设置为开机自启。(3)尝试用 tail -f 查看一次 Nginx 的运行日志。在评论区告诉我:你在第一次配置防火墙时,有没有一不小心把自己“关进小黑屋”断开过连接?随着安全加固篇的完成,我们的“基于 Linux 系统的基础服务搭建”大模块也圆满收官!从 Nginx 的 Web 托管、MySQL 的核心存储、LNMP 的动态生态,再到本篇的安全防线加固,你已经独立完成了一套企业级生产环境的全栈部署。「IT运维技能进阶」系列文章持续更新中,可以直接点击访问。