1.
准备与选型:为何选香港CN2及实例规格
- 说明:优先选择CN2 GIA线路以保证大陆访问低延迟与稳定性。
- 实操:挑选机房与套餐时记录带宽、并发连接、IPv4数量、是否支持快照与API。
- 建议规格:小站群:2核4G/50GB SSD/2-5IPv4;中型站群:4核8G/100GB/5-20IPv4。
2.
网络与IP规划:子域名与独立IP策略
- 说明:站群SEO与稳定性要求为每套站点独立IP或SNI策略。
- 操作步骤:向供应商申请额外IPv4;为每站点分配独立IP并在DNS(如Cloudflare/阿里云DNS)内记录A/AAAA。
- 注意:确保反向DNS(rDNS)设置合理,有利于邮箱和部分服务信任。
3.
系统与内核优化:TCP/文件描述符与BBR启用
- 说明:提升并发与吞吐的关键在内核调优。
- 操作命令(示例 Debian/Ubuntu):sudo apt update && sudo apt install -y linux-generic && sudo sysctl -w net.core.somaxconn=65535
- 永久设置:echo "net.core.somaxconn=65535\nnet.ipv4.tcp_tw_reuse=1\nnet.ipv4.tcp_fin_timeout=30\nnet.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf && sudo sysctl -p
4.
容器化与隔离:使用LXC/LXD或Docker部署站群
- 说明:容器化方便资源限额与快速回滚,推荐LXD做系统级隔离。
- 步骤示例:sudo apt install -y lxd && sudo lxd init,创建容器:lxc launch images:ubuntu/22.04 site01 --config limits.cpu=1 --config limits.memory=2GB。
- 好处:每个站点在独立容器中有独立网络与进程,防止资源狂占。
5.
Web栈配置:Nginx与PHP-FPM按站点分池
- 说明:为避免互相影响,为每组站点建立独立PHP-FPM池。
- PHP-FPM池示例(/etc/php/8.1/fpm/pool.d/site01.conf):[site01]\nuser=www-data\nlisten = 127.0.0.1:9101\npm = dynamic\npm.max_children = 30\npm.start_servers=5\npm.min_spare_servers=2\npm.max_spare_servers=10。
- Nginx要点:使用worker_processes auto; worker_rlimit_nofile 65535; 在server块中使用 fastcgi_pass 127.0.0.1:9101。
6.
缓存与数据库优化:Redis/OPcache与MySQL配置
- 说明:合理缓存能显著降低后端负载并提升SEO抓取速度。
- 操作步骤:安装Redis并调整 maxmemory 与 eviction 策略:redis.conf 设置 maxmemory 1gb; maxmemory-policy allkeys-lru。
- MySQL优化:编辑 my.cnf 增加 innodb_buffer_pool_size(约总内存的50-70%),并设置连接数上限与慢查询日志。
7.
磁盘与IO:SSD分区与日志管理
- 说明:I/O 是站群性能瓶颈常见来源,分区与日志策略能缓解。
- 步骤:将/var/log、/tmp和网站缓存目录挂载到独立SSD分区,使用noatime挂载选项。
- 日志轮转:配置logrotate,保留周期与压缩,防止磁盘被日志填满。
8.
安全与防护:防CC、限速与自动阻断
- 说明:站群易遭到爬虫或攻击,需多层防护。
- 操作:在Nginx中使用limit_req和limit_conn,示例配置:limit_req_zone $binary_remote_addr zone=one:10m rate=10r/s;在iptables或fail2ban中配置自动阻断行为。
- 建议:配合WAF(如ModSecurity或云WAF)识别恶意请求。
9.
自动化运维:Ansible脚本与备份策略
- 说明:站群规模大需自动化部署与集中监控。
- 步骤示例:用Ansible模板化Nginx、PHP-FPM、容器创建;任务包括:安装基础包、下发证书、配置虚拟主机与重启服务。
- 备份:每日增量/每周全备,数据库使用mysqldump或Percona XtraBackup,并异地同步(S3/对象存储)。
10.
监控与容量规划:Prometheus+Grafana与告警
- 说明:实时监控CPU、内存、IO与响应时间以便扩容决策。
- 操作:部署 node_exporter、php-fpm exporter、nginx exporter,Prometheus抓取并在Grafana建立面板与报警规则(如CPU>85%持续5min告警)。
- 扩容策略:按页面访问量与慢查询频率触发横向(再加容器/主机)或纵向(升级套餐)扩容。
11.
问:为什么选择香港CN2而不是大陆/新加坡服务器?
- 答:香港CN2(尤其CN2 GIA)在连通大陆时延低且稳定,且政策相对灵活,能兼顾大陆用户访问速度与国际访问,可减少被防火墙干扰与降低丢包率。
12.
问:如何为每个站点精确分配内存与进程上限以避免互相影响?
- 答:使用容器或PHP-FPM独立池为单位限制资源。通过容器limits或cgroup控制CPU/内存,PHP-FPM通过pm.max_children计算内存上限(每进程内存*max_children+系统开销),并在监控中微调。
来源:站群部署案例讲解香港cn2 主机资源分配与优化策略