帮助中心

首页 帮助中心 技术文档

Linux服务器安全配置与Nginx性能优化实操记录

在越南云服务器等云上环境部署Web应用时,提前参考一份Linux服务器安全配置指南可以减少常见配置失误。本文以Ubuntu 22.04和Nginx 1.18及以上版本为参考环境,实际操作前请确认当前系统版本并查阅官方文档。

一、操作前备份与适用环境

执行任何配置变更前,建议备份关键文件。以下示例命令用于复制配置目录,不会删除原目录:

sudo cp -a /etc/nginx /etc/nginx.bak.$(date +%F)
sudo cp -a /etc/ssh /etc/ssh.bak.$(date +%F)

-a 参数保留文件权限和时间戳,适合配置备份。备份后请确认文件已生成,例如 ls /etc/nginx.bak.*

备份文件建议存放在独立目录或对象存储中,避免因磁盘故障导致原配置与备份同时丢失。云上环境还可在控制台创建快照作为额外保护。

二、Linux安全配置步骤

1. 更新系统与清理冗余包

更新系统可修复已知漏洞,但升级前建议先阅读发行版更新说明。

sudo apt update && sudo apt upgrade -y
sudo apt autoremove --purge -y

autoremove 只移除系统标记为不再需要的包,不会主动删除用户数据。

2. 强化SSH登录

编辑 /etc/ssh/sshd_config 前请先备份。可调整以下参数:

  • PermitRootLogin no:禁止root直接登录;
  • PasswordAuthentication no:启用密钥登录后关闭密码登录;
  • MaxAuthTries 3:限制认证尝试次数。

若尚未配置密钥对,可使用 ssh-keygen 生成密钥,并将公钥写入 ~/.ssh/authorized_keys 且权限设为 600。验证密钥登录正常后,再关闭密码登录更稳妥。

修改后执行 sudo sshd -t 验证语法,再执行 sudo systemctl restart sshd 重启服务。若无法连接,可通过VNC恢复备份。

3. 配置UFW防火墙

仅放行必要端口,并在启用前确认22端口已放行:

sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable

不要直接禁用防火墙或清空规则,以免暴露不必要的服务面。

三、Nginx性能优化与验证

完成安全基线后,可参考Nginx服务器性能优化指南调整Nginx核心参数。修改前先备份Nginx配置目录:

sudo cp -a /etc/nginx /etc/nginx.bak.$(date +%F)

常见优化项包括:

  • worker_processes auto;:自动匹配CPU核心数;
  • worker_connections 1024;:根据内存和文件描述符调整;
  • 启用gzip压缩:gzip on; gzip_types text/plain text/css application/json;
  • 静态资源缓存:expires 7d;,可按需调整。

还可以根据业务情况调整 keepalive_timeoutserver_tokens off,前者影响长连接保持时间,后者可隐藏版本信息。调整 worker_rlimit_nofile 前,需确认 ulimit -n 的系统上限。

每次修改后执行 sudo nginx -t 检查语法,确认输出 syntax is ok 后再执行 sudo systemctl reload nginx 平滑重载。

四、验证与回滚思路

验证可通过 systemctl status nginx 查看运行状态,使用 curl -I http://127.0.0.1 查看响应头,以及通过 ss -tlnp 确认监听端口。如果优化后出现异常,可先定位配置错误,或直接恢复备份:

sudo cp -a /etc/nginx.bak.2024-01-01 /etc/nginx
sudo systemctl reload nginx

注意备份目录名中的日期需替换为实际备份文件名。不要使用删除原目录再恢复的操作,以免中间状态丢失配置。

若服务由 systemd 管理,可用 journalctl -u nginx -n 50 查看近期日志,便于快速定位启动失败原因。回滚前建议确认当前配置与备份之间的差异。

五、云上部署与运维建议

如果业务面向越南本地用户,选择合适的云服务器方案可降低部署复杂度,同时便于后续横向扩展与运维。越南云服务器购买可根据实际业务选择合适规格。建议在测试环境中先验证配置,再应用到生产节点。

建议将配置文件纳入版本控制,并定期导出镜像或快照。关于跨国业务,可通过亿达网络(IDCY GLOBAL)了解节点与网络情况。

部署到生产环境前,可使用预发布节点模拟真实流量;变更后建议保留旧配置至少一个发布周期,以便紧急回退。

六、总结

Linux安全加固与Nginx优化需要按“备份—修改—验证—可回滚”的顺序执行。本文提供的命令以Ubuntu和主流Nginx版本为例,不同环境可能有差异,请以官方文档和当前系统为准。

七、常见问题

Q1:修改SSH配置后无法远程登录怎么办?

若修改 /etc/ssh/sshd_config 后无法连接,可通过控制台VNC或救援模式恢复备份,然后执行 sudo systemctl restart sshd

Q2:Nginx优化后网站打不开如何回滚?

先运行 sudo nginx -t 检查配置语法;若语法正确但服务异常,可恢复备份目录并 sudo systemctl reload nginx

Q3:是否所有云服务器都能直接套用这些配置?

不同系统版本和Nginx大版本可能有差异,请参考官方文档,并在测试环境验证后再应用到生产环境。

Q4:如何判断Nginx优化是否生效?

可以通过 ab -n 1000 -c 100 http://127.0.0.1/ 进行简单压力测试,或观察 /var/log/nginx/access.log 的请求耗时变化,但测试环境应与生产环境隔离。

Q5:如何安全地测试新的Nginx配置而不影响线上服务?

可先运行 sudo nginx -t 检查语法,并在临时端口或独立 server 块中验证,确认无误后再切换正式配置。