第一步,统计预估并发量:最小/常态/峰值(例如:常态并发50,峰值并发200)。
小分段:记录每个站点的页面类型(静态、动态、PHP/Node)与流量分布;确定是否需要本地台湾IP以优化本地搜索结果。
为快速决策,参考配置:轻量(并发<100):2 vCPU / 2–4GB RAM / 100Mbps;中等(并发100–500):4 vCPU / 8GB RAM / 200–500Mbps;高并发(500+):8+ vCPU / 16GB+ RAM / 1Gbps。
小分段:磁盘选择SSD(NVMe优先),带宽与网络延迟对SEO/排名影响大,应优先选台湾机房且确认峰值带宽与流量计费。
推荐按业务/权重分组站点:高权重站放独立VPS或更高配,低权重站合并托管在同一VPS。同时为每个网站建立独立系统用户和独立PHP-FPM pool以限制资源。
小分段:在 /etc/php/7.x/fpm/pool.d/ 为 eachsite.conf 配置独立池,user/group 与 listen 端口/UNIX socket 单独设置,提高隔离度,便于单站问题不影响全局。
示例以 Ubuntu 为例:更新系统并安装必要软件:
小分段:执行命令:sudo apt update && sudo apt upgrade -y;安装 Nginx、PHP、MySQL、Redis:sudo apt install nginx php-fpm php-mysql mysql-server redis-server -y。
Nginx:/etc/nginx/nginx.conf 设置 worker_processes auto;events { worker_connections 10240; },并在 http 段设置 keepalive_timeout 15,sendfile on,tcp_nopush on。
小分段:PHP-FPM:在池配置中(/etc/php/7.x/fpm/pool.d/yourpool.conf)设置 pm = dynamic 或 ondemand;计算 pm.max_children = 可分配内存 / 单个 PHP 进程内存(例如:可用内存 4GB,平均进程 50MB => 4000/50 = 80)。
MySQL:使用 mysqltuner.pl 检查并调整 innodb_buffer_pool_size(建议占主机内存 50–70% 用于专用 DB,混合部署则小于 40%);开启 query_cache_size 对动态站群需谨慎。
小分段:Redis 用于页面缓存/session缓存,配置 maxmemory-policy 为 volatile-lru,并限制内存大小。将静态资源尽量交给 CDN,减少源站并发压力。
编辑 /etc/sysctl.conf 加入:
小分段:net.core.somaxconn=65535、net.ipv4.tcp_tw_reuse=1、net.ipv4.tcp_fin_timeout=30。应用:sudo sysctl -p。
同时调整文件描述符限制:在 /etc/security/limits.conf 添加 * soft nofile 65535 与 * hard nofile 65535,重启服务使其生效。
如果目标是本地搜索排名,尽量选择有台湾公网IP的VPS。对于大量站群,考虑购买多个小VPS或多IP方案,但避免所有站点完全相同的技术指纹(同一模板、相同解析策略会增加关联风险)。
小分段:建议不同站点使用不同的 A 记录 IP、不同 WHOIS 信息(如可行)及不同内容/模板,降低被搜索引擎识别为同一集群的概率。
监控:部署简单工具(htop, iostat, iftop, vnstat)或更完整的 Netdata/Prometheus+Grafana。密切观察 CPU、内存、带宽、连接数、负载。
小分段:压测示例:使用 ab 或 wrk。ab -n 1000 -c 100 http://yourdomain/;或 wrk -t12 -c200 -d30s http://yourdomain/。先从低并发逐步提高并观察响应时间和 5xx 错误。
问:如何正确估算 PHP-FPM 的 pm.max_children 值以避免内存溢出?
答:先用 ps aux | grep php-fpm 或 top 观察单个 PHP 进程的内存占用(RSS),再用可分配给 PHP 的总内存除以该值(例如可分配内存 4GB = 4000MB,单进程平均 50MB => max_children=80)。留出 20-30% 余量给系统与其他服务。
问:所有站点共用一个台湾IP,会不会被搜索引擎判为站群作弊?
答:搜索引擎并不单凭IP判定作弊,但大量相似内容、相同模板、相同外链策略联合使用同一IP,会增加关联风险。建议采取分组策略、内容差异化与部分网站使用不同IP或CDN来分散指纹。
问:如果压测中出现瓶颈,优先扩展哪部分?CPU、内存还是带宽?
答:先看监控指标定位瓶颈:CPU 高且响应慢优先加 CPU;内存耗尽则扩内存或优化缓存;大量 5xx/连接超限则增加带宽或调整内核参数。短期内可横向扩容(增加 VPS 数量或使用负载均衡)以分散站群压力。