1.
说明:本指南针对希望在台湾节点上部署多个网站(站群)并进行集中管理的技术人员。
目标:提高可用性、降低运维成本、优化访问速度与SEO表现。
2.
步骤:列出候选VPS服务商(如台湾本地或亚太机房运营商),比较带宽、延迟、IP数量与价格。
建议配置:2-4核CPU、4-8GB内存、40-100GB SSD起步;如站群规模大则按并发扩充。
注意项:选择支持独立公网IP、可设置防火墙规则、提供快照与备份的商家。
3.
操作:为每站准备独立主域或二级域名并在域名服务商添加A记录指向各VPS IP。
反向解析:如可能,设置PTR记录以提高IP信誉。
TTL与负载:DNS TTL建议设置为300秒以便灵活做流量切换。
4.
更新系统:sudo apt update && sudo apt upgrade -y(以Ubuntu为例)。
用户与SSH:adduser deployer;mkdir ~/.ssh && chmod 700;把公钥写入~/.ssh/authorized_keys并禁用密码登录(/etc/ssh/sshd_config: PermitRootLogin no, PasswordAuthentication no)。
防火墙:sudo ufw allow ssh; sudo ufw allow http; sudo ufw allow https; sudo ufw enable。
5.
NGINX+PHP:sudo apt install nginx php-fpm -y;配置/sites-available并软链到/sites-enabled,设置root、index与fastcgi_pass到php-fpm。
数据库:sudo apt install mariadb-server -y;mysql_secure_installation并创建专用DB用户与库。
测试:将index.php放到站点根目录,访问确认PHP解析正常。
6.
准备:在控制节点安装ansible:sudo apt install ansible -y。
inventory(hosts文件):列出台湾节点IP并分组,如[taiwan_nodes] 1.2.3.4 1.2.3.5。
playbook示例:编写playbook安装nginx、同步站点文件(使用git clone或rsync)并重启服务。执行:ansible-playbook -i hosts deploy.yml。
7.
静态文件:使用rsync --delete -avz 从主仓库推送到各节点,设置cron定时同步(例如每5分钟)。
数据库:对写操作集中的一台主库,其它节点使用只读从库;使用MySQL主从或MariaDB Galera(按需求选择)以避免数据冲突。
版本管理:将站点代码放入Git仓库,利用CI(如GitLab CI)自动部署到各节点。
8.
方案一(简单):DNS轮询(Round-robin),适用于流量均匀、容错要求低的情况。
方案二(进阶):使用反向代理/负载均衡器(HAProxy或Nginx LB)部署在前端,做健康检查并将流量分配给后端台湾节点。
高可用:前端负载均衡器可采用两台冗余并配合Keepalived做虚拟IP漂移。
9.
监控:部署Prometheus node_exporter在每台VPS并在集中Prometheus采集,Grafana做可视化。
日志:采用集中化日志(ELK/EFK),各节点Filebeat发送日志到Elasticsearch或Logstash。
告警:设置CPU、磁盘、响应时间阈值,通过邮箱/Slack/钉钉发送告警。
10.
加固:启用Let's Encrypt自动续期证书(certbot certonly --nginx),启用HTTP Strict Transport Security。
防护:安装fail2ban限制SSH、登录尝试;在Nginx层面配置rate-limit防刷规则。
合规:遵守当地法律与服务商反滥用条款,避免批量发送垃圾邮件或侵权内容。
11.
文件备份:每夜使用rsync或tar打包并推到异地备份(例如对象存储或另一台备份服务器)。
数据库备份:mysqldump定时导出并上传到安全存储,或使用Percona XtraBackup做热备份。
恢复演练:定期演练恢复过程(恢复时间与步骤写入SOP),确认RTO/RPO符合业务需求。
12.
缓存:启用页面缓存/Redis或Varnish减轻后端负担。
CDN:对于静态资源可接入CDN以减少跨海延迟。
自动扩容:结合监控指标,用Ansible或云API自动新增实例并同步配置,实现弹性扩容。
13.
问:台湾站群VPS如何避免IP被封?
答:控制发送行为、避免群发垃圾内容、配置反垃圾邮件(SPF/DKIM/DMARC)、合理分配任务到不同IP并监控IP信誉;若需要频繁发送必须使用第三方邮件服务。
14.
问:多节点如何快速回滚代码到稳定版本?
答:通过Git标签管理发布版本,在控制节点执行ansible-playbook回滚任务或使用rsync回退到指定发布目录;结合负载均衡先把流量切走再回滚以减少用户影响。
15.
问:遇到节点连接慢或丢包该如何排查?
答:首先用ping/traceroute定位延迟或丢包在哪一跳;检查带宽占用(iftop)、检查防火墙策略及系统负载;查看ISP或机房公告,必要时切换到健康节点并提交工单。