本文概述了一套面向中小流量站点、运行在香港 4核4G VPS 上的 WordPress 部署与性能优化流程,包括环境准备、Web/PHP/数据库调优、对象与页面缓存、CDN 加速、安全加固以及监控与压测方法,目标是在有限资源下获得稳定且响应快速的站点体验。
上线前至少准备一台香港 VPS(4核、4GB 内存),绑定公网 IP,开启 SSH 密钥登陆,并确保有 root 或 sudo 权限。同时准备域名并在 DNS 管理处可添加解析、CNAME 与 CDN 设置,以及注册一个 CDN(如 Cloudflare / BunnyCDN)账号用于后续加速。
推荐使用稳定的 LTS 发行版(如 Ubuntu 20.04/22.04 或 Debian 11)。软件栈常见选择为 Nginx + PHP-FPM(PHP 8.0/8.1/8.2)+ MariaDB/MySQL。选择轻量高效的组件能在 4核4G 环境发挥更好。
先安装 Nginx,启用 gzip、HTTP/2、TLS(推荐 TLS 1.2/1.3)与 keepalive。配置 worker_processes auto,worker_connections 1024。安装 PHP 并启用 opcache 与必要扩展(mysqli、pdo_mysql、redis、gd)。PHP-FPM 设置建议使用 pm = ondemand 或 dynamic,根据单个 PHP 进程内存估算 pm.max_children(例如每进程约 50-80MB,4GB 可设置 30-40,但留出给数据库与系统)。数据库使用 MariaDB,调整 innodb_buffer_pool_size(对 4GB VPS 可初始设 512M-1G),关闭不必要的插件,适度降低 max_connections。
页面层推荐使用 Nginx 的 fastcgi_cache,配合正确的 cache key、purge 规则与缓存控制头能极大降低 PHP 后端负载。应用层可使用 WordPress 插件(如 WP Super Cache / W3 Total Cache)或直接配合 Nginx 缓存。对象缓存方面建议启用 Redis(安装 redis-server 并用 Redis Object Cache 插件),将频繁查询的选项和 transient 存入内存缓存。
默认配置为通用场景设计,不适合内存受限的 VPS。合理调整可以避免内存耗尽与频繁交换导致的高延迟。例如控制 PHP-FPM 子进程数避免 OOM,设置 innodb_buffer_pool_size 与 tmp_table_size 避免磁盘临时表,禁用 query_cache(MySQL 新版本已弃用),并优化慢查询与索引以降低数据库负载。
将 CSS/JS/图片等静态资源通过 CDN 托管或设置 CDN 拉取缓存(origin pull)。在 Nginx 上启用合理的 Cache-Control、Expires、ETag 与 gzip/brotli 压缩。对图片采用 WebP/AVIF 格式或按需压缩,开启浏览器缓存策略并用 CDN 边缘缓存减轻 origin 压力。
强制 SSH 密钥登录、关闭 22 端口的密码认证,使用 ufw 或 firewalld 只放行必须端口。安装 fail2ban 防爆破,限制 wp-admin 访问(IP 白名单或两步验证)。启用 Cloudflare WAF 或 Nginx 的基本防护规则以抵御常见攻击,限制单 IP 并发连接以防 DDOS 造成资源耗尽。
部署轻量监控工具如 Netdata、Prometheus + Grafana 或 htop、atop,用于实时观察 CPU、内存、I/O 与 PHP-FPM/DB 连接数。压测可用 wrk、ab 或 k6,先做并发递增测试(从 10、50、100 开始)观察响应时间和 95/99 分位,找到瓶颈后针对性优化(例如增加缓存命中率、调整 PHP-FPM 或 DB 参数)。
定期清理日志、更新系统与插件、监控慢查询与缓存命中率。根据访问增长与监控数据判断是否需要升级到更多 CPU / 内存或分离数据库/对象缓存到独立实例。小幅增长可先优化缓存与 CDN,大幅增长则考虑垂直或水平扩展。