1.
项目与环境准备
- 确定业务类型与容量需求(网站、API、数据库)并据此选择实例规格。
- 选择新加坡机房(SG region),考虑就近用户延迟与合规性。
- 购买域名并在DNS托管处添加A/AAAA记录,建议使用托管DNS(例如Cloudflare或阿里云DNS)并开启DNSSEC。
- 规划公网带宽与弹性IP,常见带宽选择1Gbps或500Mbps按需计费。
- 准备SSL证书(Let’s Encrypt或付费证书),并设计自动续期策略(certbot --nginx自动续期)。
2.
服务器与VPS基础配置
- 操作系统:建议Ubuntu 22.04 LTS或CentOS 8,生产环境统一镜像便于运维。
- 示例主机配置(示例IP在新加坡机房):CPU 4 vCPU,内存 8 GB,磁盘 160 GB SSD,带宽 1 Gbps,公网IP 203.0.113.45,系统 Ubuntu 22.04。
- SSH安全:修改默认端口22->22022,禁用root登录(/etc/ssh/sshd_config:PermitRootLogin no),配置公钥认证。
- 防火墙:使用nftables或ufw,示例规则:允许22022、80、443,限制其他端口;记录并定期审计。
- 网络优化:设置sysctl(net.core.somaxconn=1024、tcp_fin_timeout=30)和关闭不必要服务,确保内核参数符合并发连接预期。
3.
监控工具部署(Prometheus + Grafana)
- 部署Prometheus采集指标,安装node_exporter并在Prometheus的scrape_configs添加目标。示例prometheus.yml片段:scrape_configs: - job_name: 'node' static_configs: - targets: ['203.0.113.45:9100']。
- 配置保存期,例如retention=15d,磁盘规划按每台机器0.5-2 GB/日估算。
- 在Grafana中导入Node Exporter与Nginx模板,创建CPU、内存、磁盘、网络带宽面板。
- 告警规则:CPU>85%持续5分钟触发,磁盘使用>80%触发,HTTP 5xx比率>1%触发,Prometheus Alertmanager负责通知(邮件/Slack)。
- 定期压测并验证监控覆盖(使用wrk或hey),确保采集频率(30s/15s)不会造成采集端负载过高。
4.
日志与指标聚合(ELK/EFK)
- 日志采集使用Filebeat或Fluent Bit,配置采集Nginx、应用和系统日志并推送到Elasticsearch或Logstash。
- 示例索引策略:daily indices,保留14天热数据,30天冷数据,归档至对象存储(S3/OSS)。
- Kibana用于日志分析,创建Error/SlowQuery可视化和告警阈值。
- 磁盘与ES资源规划:每TB日志约需ES主节点+热节点合计3-5个vCPU与16-32GB内存。
- 日志轮转与压缩:使用logrotate每天轮转并保留最近7天原始文件,长期冷藏到对象存储节省成本。
5.
CDN与DDoS防御配置
- 建议使用Cloudflare或阿里云CDN做静态资源加速与全站代理,启用HTTP/2与TLS 1.3。
- 在DNS处将域名CNAME/Proxy到CDN,配置缓存规则(静态资源缓存7天,API不缓存)。
- DDoS防护:启用WAF规则,设置速率限制(例如每IP每分钟不超过120次请求),并在高风险时切换到“I'm Under Attack”模式。
- 网络层防护由云厂商提供(BGP Anycast + 清洗中心),建议购买按需清洗或基础包(例:基础防护5Gbps,按流量计费)。
- 监控流量异常:设置Netflow/sFlow或云厂商流量告警;当每分钟流量突增超过基线的3倍自动触发应急流程。
6.
真实案例与性能数据
- 真实案例:某新加坡电商将主站迁移至新加坡机房并配置Prometheus/Grafana和Cloudflare后,页面平均响应时间从120ms降至35ms,错误率从1.8%降至0.2%。
- 迁移前后关键指标对比表:
| 指标 | 迁移前 | 迁移后 |
| 平均响应时延 | 120 ms | 35 ms |
| CPU峰值 | 85% | 55% |
| 错误率(5xx) | 1.8% | 0.2% |
| 带宽峰值 | 250 Mbps | 420 Mbps(CDN卸载后) |
- 服务器配置举例:Web节点:4 vCPU/8GB/160GB SSD(203.0.113.45),DB主:8 vCPU/32GB/1TB NVMe(203.0.113.46),备份使用每天02:00自动快照并同步到新加坡外部对象存储。
7.
运维自动化与备份策略
- 使用Ansible编写初始化剧本(用户创建、包安装、防火墙、监控agent部署)实现一键上云。
- 备份策略:数据库全备每日一次,增量每15分钟,RPO目标15分钟,RTO目标1小时。
- 快照与异地备份:每周快照并复制到亚太其他可用区或对象存储,保留策略30/90/365天。
- 灾备演练:每季度执行一次恢复演练,记录耗时并优化恢复流程。
- 日常运维:编写SOP(故障接入、升级回滚、流量暴增应急),并用Prometheus Alertmanager+PagerDuty/钉钉实现告警推送与自动化工单。
来源:运维与监控工具在服务器怎么在新加坡托管过程中的配置指南