1.
准备与环境说明
说明你的VPS系统(示例:Ubuntu 20.04/22.04)、CPU/内存/磁盘类型(SSD/NVMe)、带宽与是否有独立公网IP;建议先做快照备份。小分段:a) 登录并更新:sudo apt update && sudo apt upgrade -y;b) 设置时区:sudo timedatectl set-timezone America/New_York;c) 创建非root用户:adduser deploy && usermod -aG sudo deploy。
2.
基础安全加固(SSH 与账号)
步骤:a) 修改SSH端口并禁用root登录:编辑 /etc/ssh/sshd_config,修改Port为自定义(如2222),PermitRootLogin no,然后 sudo systemctl restart sshd;b) 禁用密码登录,仅使用密钥:PasswordAuthentication no;c) 配置fail2ban:sudo apt install fail2ban -y,创建 /etc/fail2ban/jail.d/sshd.local,启用并重启服务。
3.
防火墙与访问控制
使用ufw/iptables进行白名单和限速。步骤:a) 安装ufw并允许必要端口:sudo ufw allow 2222/tcp; sudo ufw allow 80,443/tcp; sudo ufw enable;b) 对管理IP做白名单:sudo ufw allow from 1.2.3.4 to any port 2222;c) 限制并发连接:使用iptables的connlimit模块或云端安全组。
4.
内核与网络参数优化
编辑 /etc/sysctl.d/99-custom.conf,添加并加载:net.core.somaxconn=65535; net.ipv4.tcp_fin_timeout=15; net.ipv4.tcp_tw_reuse=1; net.ipv4.ip_local_port_range="10000 65000";保存后 sudo sysctl --system。小分段:a) 调整TCP重用与拥塞;b) 优化文件描述符:ulimit -n 65536,并在 /etc/security/limits.conf 添加相应项。
5.
磁盘与I/O 优化
对于站群要优先使用NVMe或SSD,步骤:a) 查看磁盘并启用noatime:编辑 /etc/fstab,加上,noatime,nodiratime;b) 关闭不必要的服务以减少写入;c) 使用iostat、iotop监控IO瓶颈:sudo apt install sysstat iotop -y,运行 iostat -x 1。
6.
Web层(Nginx + PHP-FPM)性能优化
步骤与示例:a) 安装:sudo apt install nginx php-fpm -y;b) Nginx worker 设置:在 /etc/nginx/nginx.conf 调整 worker_processes auto; worker_connections 4096; keepalive_timeout 15;c) PHP-FPM 池配置:在 /etc/php/7.x/fpm/pool.d/www.conf 设置 pm = dynamic, pm.max_children=50, pm.start_servers=5, pm.min_spare_servers=2, pm.max_spare_servers=10;d) 重启服务并观察:sudo systemctl restart nginx php7.x-fpm。
7.
缓存方案(Redis/OPcache/页面缓存)
步骤:a) 安装Redis并绑定内网IP:sudo apt install redis-server -y,编辑 /etc/redis/redis.conf,bind 127.0.0.1,同时设置requirepass;b) 启用PHP OPcache:在 php.ini 中设置 opcache.enable=1, opcache.memory_consumption=128;c) 使用全页缓存(如Varnish或Nginx microcache)减少后端压力。
8.
数据库优化(MySQL/MariaDB)实战
步骤:a) 安装并基本配置:sudo apt install mariadb-server -y;b) 使用 mysqltuner.pl 分析并根据内存设置 innodb_buffer_pool_size≈总内存的60%;c) 调整连接数和tmp_table_size,启用慢查询日志并针对慢查询建立索引;d) 将数据库放在独立磁盘或使用RAID/云盘快照。
9.
多IP、站群部署与反向DNS配置
对站群SEO重要:a) 每台VPS申请独立公网IP并在DNS提供商设置PTR(反向DNS)指向对应域名;b) 在邮件发信时确保SPF/DKIM/DMARC配置正确;c) 使用Ansible脚本批量部署站点与证书(示例任务:ansible-playbook playbook.yml -i hosts)。
10.
监控、日志与告警
步骤:a) 部署Prometheus+Grafana或使用Zabbix监控CPU/内存/IO/连通性;b) 配置logrotate管理日志:cat /etc/logrotate.d/nginx 示例;c) 设置磁盘、内存告警并启用邮件或Slack通知,保证站群异常能被快速发现。
11.
入侵检测与文件完整性检查
步骤:a) 安装fail2ban并自定义规则拦截爬虫与暴力登录;b) 使用AIDE或Tripwire做文件完整性检测:sudo apt install aide -y,初始化 sudo aideinit;c) 定期扫描恶意PHP后门(如用 Maldet):sudo apt install maldet。
12.
备份与灾备策略
步骤:a) 定期快照与异地备份:利用云商Snapshot和rsync到异地服务器;b) 数据库导出脚本:mysqldump -u root -p --single-transaction --quick dbname | gzip > /backup/dbname_$(date +%F).sql.gz;c) 编写恢复演练步骤并定期测试。
13.
自动化运维与扩容
建议:使用Terraform/Ansible自动化VPS创建、配置证书、部署站点和更新。示例:用Ansible roles 管理nginx/php/redis,CI触发 playbook 保持一致性。小分段:a) 版本化配置;b) 快速扩容模板;c) 定期审计剧本。
14.
常见故障排查步骤(问):如何快速定位站群某台VPS性能飙升?
答:先远程登录查看top/htop、iostat、iotop,检查进程、IO、网络,查看nginx/php-fpm连接与慢查询日志;若是爬虫或攻击,查看access.log并在fail2ban中临时封禁IP。同时回滚最近变更或恢复快照。
15.
常见疑问(问):如何在保证安全的前提下进行批量网站管理?
答:采用无密码密钥登录+跳板机、Ansible集中管理配置、使用只读备份账号和严格的角色分离(RBAC),并在部署流程中加入自动安全扫描与合规检查。
16.
部署建议与结语(问):站群长期维护有哪些必须坚持的操作?
答:坚持系统与软件补丁、定时备份与恢复演练、日志与监控告警、文件完整性检查、定期安全扫描与权限审计,以及保持自动化与文档化流程,才能在美国站群规模扩张时保持稳定与安全。
来源:美国站群vps主机性能优化与安全加固的实战手册